使用VBA在Sharepoint中创建新文件夹

时间:2018-11-27 10:21:02

标签: vba sharepoint save mkdir

我正在尝试使用VBA将工作簿自动保存到Sharepoint文件夹,该文件夹需要首先创建。 我下面的代码仅适用于保存文件。 MkDir函数返回运行时错误76:找不到路径。我不知何故导致了此错误,因为/ txt之前的路径确实存在,并且我具有手动添加新文件夹的正确权限。我还尝试用\代替/替换当前路径,但是除了使代码变慢之外,这没有任何作用。网上没有“解决方案”对我有用。

有什么想法吗?

MkDir "https://placeholder.sharepoint.com/teams/Services_NL/Shared Documents/txt"
DateAndTime = Left(Replace(Replace(Replace(Now, " ", "_"), ":", ""), "/", ""), Len(Replace(Replace(Replace(Now, " ", "_"), ":", ""), "/", "")) - 5)
ActiveWorkbook.SaveAs "https://placeholder.sharepoint.com/teams/Services_NL/Shared Documents/Export/" & ExportSheet & DateAndTime & ".txt", FileFormat:=xlTextWindows

3 个答案:

答案 0 :(得分:0)

我尝试了正斜杠和反斜杠的所有不同组合,例如“ https://” ...等。但是我终于使用以下语法使MkDir命令起作用:

MkDir "\\mysite.sharepoint.com\IS\Shared Documents\My Docs\" & "MyNewFolder"

注意:用空格替换任何%20(Sharepoint用来替代URL中的空格)。最好还是直接从Windows资源管理器导航栏中复制文件夹地址,然后在其末尾添加反斜杠。

此外,我认为通过在Windows资源管理器中打开Sharepoint目录文件夹并进行浏览来测试您的环境(权限或其他)的能力非常重要。如果可以这样做,则MKDir命令应该可以使用,因为您已经证明文件目录是可访问的。

在Sharepoint的“库”选项卡上找到了“使用资源管理器打开”图标(我正在使用Office 365)。我发现在某些Sharepoint环境中,默认情况下可以访问“库”选项卡,但是在其他环境中,它是隐藏的(仅“浏览”和“页面”选项卡可见)。在这种情况下,我可以通过导航到Sharepoint文件夹,突出显示一堆文件,然后右键单击突出显示的部分而不单击任何弹出选项来显示“库(和文件)”选项卡。奇怪的行为,但确实有效。

答案 1 :(得分:0)

我遇到同样的问题,从Win 7和Win 10使用Office 365到Sharepoint2013。这可能与一项安全功能有关,该功能会干扰文件系统对象对使用VBA的在线地址的操作,导致

  

错误76路径未找到;错误70权限被拒绝;并且   错误52错误的文件名。

我们有多个Win 10 Office 206用户,这些用户具有VBA,宏,受信任的位置,用户权限,浏览器导航,UI文件夹创建等全部功能正常,并在MSWord和SP2013中进行了设置:错误70、76有时是52结果当VBA尝试将“另存为”保存到Sharepoint文件夹时,它们都具有不受限制的访问权限。

运行Office 2010的同一用户,使用同一VBA到同一服务器的同一用户在文件系统对象保存,导航等方面都没有问题。

我发现在与VBA的会话中映射和取消映射Sharepoint 2013路径/驱动器/文件夹似乎可以使其正常工作。我在2019年2月22日星期五尝试了此操作。在导航和创建文件夹代码之前的VBA中,我将“共享文档”库映射到了下一个可用驱动器(逐步检查驱动器字母67至89是否存在,然后执行“另存为” ,然后删除该映射。我将在2019年2月24日星期一进行更多测试。

我的路径字符串是:\\sp.url@ssl\davwwwroot\site\subsite\shared%20documents 并且所记录的驱动器号是动态的,取决于用户的拥有情况。

因此,我字符串中的路径使用的是WebClient服务,这对我而言在SP2013下非常可靠。直到Office 365 / Office 2016。

答案 2 :(得分:0)

Windows 10中的WebClient和Office 2016/365 :从Win 7 + Office 2010到Win 10 + Office 2016/365,我遇到了完全相同的情况。现在,使用WebDAV的FileSystemObject活动不适用于(以前完全起作用的)WebDAV路径\ sitename @ ssl \ davwwwroot \ site。 尝试遍历路径或在该路径上创建文件系统对象时收到错误70、76。映射和取消映射是可行的,但是哇-当路径已经通过身份验证时,这似乎是一个多余且笨拙的过程,显然是WebClient除外。 将AuthForwardServerList作为新的Multistring DWORD参数添加到HKLM CurrentControlSet Service WebClient可以使系统起作用,但是我不能说,即使路径已映射,它也始终允许创建FileSystemObject;参见https://support.microsoft.com/en-us/help/943280/prompt-for-credentials-when-you-access-webdav-based-fqdn-sites-in-wind 我认为路径问题是Win 10系统问题。

另一个问题是访问被拒绝,我认为这是由于Office 2016/365中的安全“功能”所致,我认为该功能旨在控制在线位置中的FileSystemObject活动。