【问题标题】:Maintain Sharepoint Server Url with subfolders in document list在文档列表中维护带有子文件夹的 Sharepoint Server Url
【发布时间】:2015-06-12 06:42:24
【问题描述】:

我想遍历 Sharepoint 文档库项目(文件和文件夹以及子文件夹),然后在 Excel 工作表中打印每个文件夹内容

我的宏中有以下代码

Sub WriteFileProp(mySourcePath As String)

    Dim objMyList As ListObject
    Dim objWksheet As Worksheet
    Dim strSPServer As String
    Dim SERVER As String
    Const LISTNAME As String = "Documents"
    Const VIEWNAME As String = ""
     SERVER = mySourcePath
   ' The SharePoint server URL pointing to
   ' the SharePoint list to import into Excel.

    strSPServer = "http:" & SERVER & "/_vti_bin"
    ' Add a new worksheet to the active workbook.
    Set objWksheet = Worksheets.Add
    ' Add a list range to the newly created worksheet
    ' and populated it with the data from the SharePoint list.
    Set objMyList = objWksheet.ListObjects.Add(xlSrcExternal, _
        Array(strSPServer, LISTNAME, VIEWNAME), False, , Range("A1"))

 End Sub

还有那个功能

 Dim objFSO As Object
 Dim objFolder As Object
 Dim ObjFile As Object
 Dim SubFolder As Object
 Dim pth As String
 Dim WBn As Workbook
 Dim ObCount As Long
 Dim FileNme As String

 Application.ScreenUpdating = False

 Set objFSO = CreateObject("Scripting.FileSystemObject")

 'Get the folder object associated with the directory
 Set objFolder = objFSO.GetFolder("//S1.S2.S3Portal/Shared%20Documents/")

 Call WriteFileProp("S1.S2.S3Portal.com/")
 'Print main view

For Each SubFolder In objFolder.SubFolders
            Call WriteFileProp(SubFolder.Path)
        Next

Call WriteFileProp("S1.S2.S3Portal.com/")之前一切正常 之后我循环子文件夹并且路径不兼容

中提供的 ServerUrl
objWksheet.ListObjects.Add(xlSrcExternal, _
        Array(strSPServer, LISTNAME, VIEWNAME), False, , Range("A1"))

即假设第一个子文件夹名称是 Software 它的路径采用以下格式 //S1.S2.S3Portal/Shared%20Documents/Software

但 ListObjects.Add 仅接受 msdn 所规定的格式

strSPServer = http://S1.S2.S3Portal

ListName="文档"

查看=""

无论如何都要维护该文档的子文件夹 URL。库并使用 ListObjects.Add 或类似函数将它们添加到 excel 工作簿中

【问题讨论】:

  • 据我所知,“Forms”是一个特殊的 Sharepoint 文件夹。我一直在统计上传的 Excel 文件,而“表单”仅用于内部处理,而不是正常的存储路径,所以我在所有子文件夹中绕过了它
  • @paulbica 我刚刚提到了任何名称,无论如何我已经在问题中对其进行了修改以消除任何混淆,希望它有所帮助
  • 抱歉没有早点回来;我没有 Sharepoint,而且如果没有看到代码中的每个步骤在做什么,我很难理解这个问题:您想要构建一个包含所有 http 地址的表对象。您进行了一些调查,试图找出“调用 WriteFileProp”失败的原因,但“...路径不兼容...”不够具体:WriteFileProp Sub 在某处失败,您需要查看错误的详细信息。我猜这与 http 地址字符串以及 Excel 将其写入表的方式有关
  • 试试这个:在第一个Sub WriteFileProp中,在函数名后的第一行添加以下内容:“On Error Resume Next”,然后在以“Set”开头的行后添加此行:MsgBox “错误详情:” & Err.Description。您在消息框中看到和相关的详细信息了吗? (我会用一个答案让你看看要尝试什么)

标签: vba excel sharepoint listobject


【解决方案1】:

我使用 GetListItems 与 Soap 查询和网络服务来获取列表项而不是发布的方法

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 2018-07-03
    • 2021-08-16
    • 2012-05-30
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多