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

问题描述 投票:4回答:2

我正在尝试使用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
vba sharepoint save mkdir
2个回答
1
投票

我遇到了同样的问题,使用从Win 7和Win 10到Sharepoint 2013的Office 365.它可能涉及一个安全功能,它干扰文件系统对象操作到VBA的在线地址,导致

错误76路径未找到;和错误70许可被拒绝;还有错误52错误的文件名。

我们有几个Win 10 Office 206用户,VBA,宏,受信任位置,用户权限,资源管理器导航,UI文件夹创建等都功能齐全,并在MSWord和SP2013中设置:当VBA时出现错误70,76和52尝试另存为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。


0
投票

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

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

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

此外,我认为通过在Windows资源管理器中打开Sharepoint目录文件夹并在测试中导航它们来首先测试您的环境(权限或其他)的能力非常重要。如果你可以这样做,那么MKDir命令应该可以工作,因为你已经证明文件目录是可访问的。

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


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服务WebClient使系统功能,但我不能声明它将始终允许创建FileSystemObject,即使路径已映射;看看https://support.microsoft.com/en-us/help/943280/prompt-for-credentials-when-you-access-webdav-based-fqdn-sites-in-wind我认为路径问题是Win 10系统问题。

另一个问题是Access Denied,我认为这是由于Office 2016/365中的安全“功能”,我认为它旨在控制在线位置的FileSystemObject活动。

© www.soinside.com 2019 - 2024. All rights reserved.