2012-01-17 3 views
0

내 PC의 공유 위치에 매크로 사용 가능 워크 시트가 있습니다. 직원의 일부 데이터를 수집하는 데 사용되는이 시트는 네트워크의 공유 위치에 있습니다. 그것은 사용자가 시간 내에 데이터를 채우지 못할 때 미리 알림 메일을 보내는 기능이 있습니다. 메일 내용에서 필자는 Excel 파일에 로컬 네트워크 경로를 추가하려고합니다. 네트워크에서 공유되는 Excel 파일의 전체 네트워크 경로를 찾는 방법은 무엇입니까?

나는 C이 폴더의 경로를 얻을이 코드를 사용하여 메일을 보내는의 코드

“You can access the tool from the location " & ThisWorkbook.FullName 

을 추가하여이 작업을 수행 : 사용자 \ XYZ \ Hello.xlsm 을 \ 내가 네트워크를 보내 싶습니다 경로를 IP 주소와 함께 사용하면 사용자가 직접 경로를 복사하여 파일에 액세스 할 수 있습니다.

흥미로운 것은 파일 형식의 공유 폴더에 액세스하여 내 시스템이 아닌 다른 시스템에서 메일을 보내면 메일이 네트워크 경로와 함께 전송된다는 것입니다. 누구든지이 일을 도울 수 있습니까?

Excel 2007을 사용합니다.

+1

이 스레드를 참조하십시오. 비슷한 것이겠습니까? http://stackoverflow.com/questions/5261085/excel-2010-how-to-easily-get-network-path-to-the-file-you-are-working-on –

답변

0

나는 부분적으로 내 문제를 해결했다. 나는 컴퓨터 이름을 찾을 수있는 기능을 사용 단점

Private Declare Function GetComputerName Lib "kernel32" _ 
    Alias "GetComputerNameA" _ 
    (ByVal lpBuffer As String, nSize As Long) As Long 

Function ReturnComputerName() As String 
    Dim rString As String * 255, sLen As Long, tString As String 
    tString = "" 
    On Error Resume Next 
    sLen = GetComputerName(rString, 255) 
    sLen = InStr(1, rString, Chr(0)) 
    If sLen > 0 Then 
     tString = Left(rString, sLen - 1) 
    Else 
     tString = rString 
    End If 
    On Error GoTo 0 
    ReturnComputerName = UCase(Trim(tString)) 
End Function  


Sub GetThePath() 
    If Left(ThisWorkbook.FullName, 2) <> "\\" Then 
     If Sheet4.Range("B15").Value = "No" Then 
      CN = "file:\\" & Evaluate("=ReturnComputerName()") & "\" 
     End If 
     mynames = ThisWorkbook.Path 
     mynamesa = Split(mynames, "\") 
     elem = UBound(mynamesa) 
     mynames = mynamesa(elem) 
     mynames = mynames & "\" & ThisWorkbook.Name 
     mynames = CN & mynames 
    ElseIf Left(ThisWorkbook.FullName, 2) = "\\" Then 
     mynames = ThisWorkbook.FullName 
    End If 
End Sub 

ThisWorkbook.Fullname를 조작 : 파일이 공유 폴더 내의 폴더에있는 경우 올바른 경로를 찾을 수 없습니다.

1

왜 IP 주소입니까? 컴퓨터 이름을 사용할 수 없습니까?

file:\\computername\Users\XYZ\Hello.xlsm. 

하지만 솔직히 말해서 나는 이런 식으로 일하는 데 약간의 고통을 느끼고 있습니다. 왜 HTML 폼과 PHP가 데이터를 MySQL에 넣은 다음 Excel 또는 다른 것으로 추출 할 수 있습니까? 여기

--edit

은 컴퓨터 이름을 얻기의 가능한 방법에 대한 링크입니다. 나는 그것이 작동하는지 아닌지 말할 수 없도록 시도하지 않았다.

http://spreadsheetpage.com/index.php/tip/retrieving_the_computer_name_or_logged_in_user_name/

+0

PHP로 할 수있는 좋은 제안이지만 나는 그 자체로 탁월하다. 나는 PHP에 대해서도 잘 모르고있다. Excel을 사용하여 컴퓨터 이름을 다시 검색하려면 어떻게합니까? – Ian

+0

코드는 컴퓨터 이름을 반환합니다. 사용자가 파일에 액세스하기 위해 복사하여 복사 할 수있는 링크가 필요합니다. 이것을 조작하는 방법? – Ian

1

기지 아마 고정, 그래서 난 같은 간단한 솔루션을 갈 것입니다 :

Replace(ThisWorkbook.FullName,"C:\Users\","file:\\computername\Users\) 
+0

사용 가능하지만 C : \ Users \가 항상 일정하지는 않습니다. 파일은 공유 위치에있는 폴더 내에있을 수 있습니다. – Ian

+0

이 경우 ThisWorkbook.FullName은 네트워크 경로를 터닝하고 바꾸기가 효과가 없으므로 좋을 것입니다 ... – Arnoldiusss

관련 문제