首页 > 解决方案 > 使用 VBA 和 REST 获取 Sharepoint 文档 URL

问题描述

我为我的公司管理检验数据。我们通过标准化的 Excel 模板收到许多检查报告,我使用宏从这些报告中收集所有相关数据。数据被编译到主表中,其中每条记录都是检查,并输入 Power BI,以便可以将结果共享给我的团队的其他成员。

这些报告通过 Sharepoint 提交,然后自动下载到我计算机上的本地驱动器。然后我的宏扫描同步的本地接收文件夹,处理任何新的检查,并将它们移动到另一个本地文件夹,该文件夹将它们同步到一个安全的只读 Sharepoint 文件夹。下面是一张图来说明。

-----------------------------------------------------------------------------
                                  SHAREPOINT
Excel Reports submitted online by                         Reports synced back
inspectors through Sharepoint                             up to online secure 
            |                                             read-only Sharepoint 
            |                                             folder
            |                                                      ^
            v                                                      |
------------------------------------------------------------------------------
                                   ON MY PC

Reports are synced to local -------> VBA macro      ------> Reports moved to
"receiving" folder on my PC          processes files        local "hosting"
                                                            file on my pc which 
                                                            syncs to Sharepoint
------------------------------------------------------------------------------

这就是棘手的地方:

我希望能够在我的主 excel 文件中添加一个链接到 Sharepoint 上的个人报告(网址不是本地地址),以便我团队中查看 Power BI 报告的人可以单击以通过 excel 在线打开检查报告。我似乎无法弄清楚如何在我的代码中设置 REST API 来获取 URL。

我已经尝试了下面的代码,但它什么也没返回,我确信它已经很远了:

URL = "http://lab/_vti_bin/listdata.svc/Library()?$filter=FileLeafRef eq '" & oFile.Name & "'&$select=Title"

        Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
        req.Open "GET", URL, False
        req.SetRequestHeader "Content-Type", "application/xml"
        req.SetCredentials "myEmail", "myPass", 0
        req.Send

        Set objXML = CreateObject("Msxml2.DomDocument.6.0")
        If Not objXML.LoadXML(req.ResponseText) Then
            Err.Raise objXML.parseError.ErrorCode, , objXML.parseError.reason
        End If

        mws.Range("AJ") = URL

谁能帮我指出正确的方向?提前感谢您的时间和帮助!

标签: excelvbarestsharepoint

解决方案


推荐阅读