使用VBA从Sharepoint中的文件夹获取文件名

时间:2013-11-26 11:30:33

标签: file vba sharepoint system fso

我已经对此进行了大量研究,并找到了许多帮助网站,但仍然无法理解为什么这有时不起作用。

我正在尝试访问一个sharepoint站点(对我没有限制),并提取该站点内文件夹中的所有文件。

有时候我的路径会起作用而它会这样做,有时则不行。我有一种感觉,如果我之前在我的浏览器上进入sharepoint网站但无法确认(因为我现在再次尝试它并且它不起作用ARGGH)。但是下面的代码在过去一直有效。

下面的文件系统对象功能失败了
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)代码时,我收到“运行时错误'76':找不到路径”

strfilepath只是一个普通的共享点网站名称(例如像\ teams.uk \ gm \ FX \ SharedDocuments \ London \ 11)2013年11月\ 11月20日\报告)

如上所述,我尝试过不同的文件路径变体,包括DavWWW,但似乎没有任何工作,我不知道还有什么可以尝试。

请问任何建议?

由于

Raiyan

1 个答案:

答案 0 :(得分:0)

必须使用FileSystemObject启动webclient服务以访问SharePoint。

首次登录时,通常不会启动此服务。但是,当您通过普通用户界面访问SharePoint时,它就会启动。我认为这就是你的代码工作不一致的原因。

如果您拥有本地计算机的管理员权限,则可以手动启动该服务(或使用代码)。但是,如果你没有权利,那么你可以试一试 - 它很笨拙但有效。

使用VBA代码在资源管理器视图中打开已知的SharePoint文件夹,然后将其关闭。这将触发webclient启动。