我在excel vba中有一个例程,它从sharepoint服务器检索文件和文件列表,以便从多个文件中提取特定数据。如果用户事先进入Windows资源管理器中的服务器(在地址栏中输入\ server.address.com \ Directory \ Folder \ Structure \)并使用Windows登录信息登录,则此方法很有用。
如果用户自重新启动后尚未登录,则系统会抛出错误,因为它无法访问sharepoint服务器上的文件系统。
我以为我可以使用shell打开一个资源管理器窗口:
Shell "explorer.exe /e, \\server.address.com\Directory\Folder\Structure\", vbNormalFocus
但如果他们尚未登录,则只会在用户的文档文件夹中打开。我也尝试使用文件系统对象连接到文件夹,希望提示然后:
Dim FSO As Object, FLD As Object
Set FSO = CreateObject("scripting.filesystemobject")
Set FLD = FSO.GetFolder("\\server.address.com\Directory\Folder\Structure\")
但没有快乐。
此外,目录结构中没有空格,所以我不需要逃避路径(尽管我确实尝试过)。
我还尝试强制用户在Get the content of a sharepoint folder with Excel VBA中找到的驱动器代码中映射Windows资源管理器中的文件夹,但是我收到错误“由于用户尚未经过身份验证,因此未执行请求操作”。
任何想法我还可以尝试为最终用户进行身份验证,而不是让他们都将共享点添加到他们的资源管理器收藏夹(我的手动解决方法)。
由于
答案 0 :(得分:0)
捕获错误,弹出一个告诉他们需要登录的弹出窗口。当他们按下确定时,执行类似下面的代码:
ActiveWorkbook.FollowHyperlink Address:="https://yourSharePointSitehere", NewWindow:=True