2013-11-26 3 views
1

나는 많은 연구를 수행했지만 많은 도움 사이트를 찾았지만 왜 이것이 때때로 작동하지 않는지 이해할 수 없습니다.Sharepoint에서 VBA를 사용하는 폴더에서 파일 이름 가져 오기

나는 (저에게 제한이없는) 셰어 포인트 사이트에 액세스하려고 시도하고 해당 사이트 내의 폴더에있는 모든 파일을 추출하려고합니다.

경우에 따라 내 경로가 작동하고 실행되지만 그렇지 않은 경우가 있습니다. 이전에 내 브라우저에서 SharePoint 사이트로 이동했지만 확인하지 못했지만 (지금 막 다시 시도했기 때문에 ARGGH로 작동 함) 기분이 좋습니다. 그러나 아래의 동일한 코드가 과거에도 작동했습니다.

그것은 내가 "런타임 오류 '76'를 찾을 수 없습니다 경로"얻을

Public Function GetFullFileName(strfilepath As String, _ 
strFileNamePartial As String) As String 
Dim objFS As Variant 
Dim objFolder As Variant 
Dim objFile As Variant 
Dim intLengthOfPartialName As Integer 
Dim strfilenamefull As String 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strfilepath) 
'work out how long the partial file name is 
intLengthOfPartialName = Len(strFileNamePartial) 

For Each objFile In objFolder.Files 
    'Test to see if the file matches the partial file name 
    If Left(LCase(Replace(objFile.Name, " ", "")), intLengthOfPartialName) = LCase(strFileNamePartial) Then 
    'get the full file name 
     strfilenamefull = objFile.Name 
     Exit For 
    Else 
    End If 
Next objFile 

'Return the full file name as the function's value 
GetFullFileName = strfilenamefull 
End Function 

아래의 파일 시스템 개체 기능에 실패한 것

는 위해 GetFolder (strfilepath) 코드

에 도달 할 때를 strfilepath는 일반적인 sharepoint 사이트 이름입니다 (예 : \ teams.uk \ gm \ FX \ SharedDocuments \ London \ 11). 11 월 2013 \ 20 11 월 \ Reports)

언급 한 바와 같이 다양한 파일 변형 DavWWW를 포함하는 길 그러나 아무것도 일하는 것처럼 보이지 않는다. 그리고 나는 무엇이 els 시도하는 e.

아무쪼록 부탁드립니다.

감사

Raiyan

+0

네트워크 연결 때문일 수 있습니다? – jacouh

+0

그렇게 생각하지 마십시오 - 저는 SharePoint 사이트에 직접 들어가서 액세스 할 수 있습니까? – user2599240

+0

왜 FileSystemObject를 사용하여 SharePoint 사이트의 문서에 액세스합니까? SharePoint 문서는 SharePoint에서 만든 가상 경로에 있으며 FileSystemObject는 해당 경로에 대해 아무 것도 모릅니다. 셰어 포인트 사이트의 문서에 액세스하려면 SharePoint API를 사용해야합니다. 어쩌면 당신은 일종의 COM 개체를 사용하고 있습니까? –

답변

0

WebClient 서비스는 FileSystemObject를를 사용하여 액세스 셰어로 시작해야합니다.

이 서비스는 처음 로그온 할 때 시작되지 않는 경우가 많습니다. 그러나 일반 사용자 인터페이스를 통해 SharePoint에 액세스하면 시작됩니다. 나는 이것이 당신의 코드가 일관성없이 작동하는 이유라고 생각한다.

로컬 컴퓨터에 대한 관리자 권한이 있으면 수동으로 (또는 코드를 사용하여) 서비스를 시작할 수 있습니다. 그러나 권한이없는 경우 트릭을 시도 할 수 있습니다. 서투른 것이지만 작동합니다.

VBA 코드를 사용하면 탐색기보기에서 알려진 SharePoint 폴더를 연 다음 닫습니다. 그러면 웹 클라이언트가 시작됩니다.

관련 문제