我开发了一个Excel文件,其中包含一个带宏的按钮,可以为用户保存工作簿。直到最近我们迁移到Sharepoint并且用户正在尝试将工作簿保存到映射到Sharepoint位置的映射驱动器时,这一直运行良好。
因此,例如,我的用户已将\\<server@SSL\sites\<sitename>\<documentlibrary>
映射到她的Z驱动器。
当我使用ThisWorkbook.GetSaveAsFilename
时,结果会返回一个类似于https://<server@SSL\sites\<sitename>\<documentlibrary>\<filename>.xlsm
在进行任何更改之前,我在行上遇到了运行时错误
ThisWorkbook.SaveAs Filename:=excelFile
其中excelFile
为https://<server@SSL\sites\<sitename>\<documentlibrary>\<filename>.xlsm
我的第一次尝试是对字符串进行一些查找/替换。首先用空格替换https:
,然后用反斜杠/
替换正斜杠\
,使其类似于文件路径,如下所示:
\\<server@SSL\sites\<sitename>\<documentlibrary>\filename.xlsm
这里取得了一些进展。我没有收到任何VBA错误,但我收到了一条消息:
UPLOAD FAILED我们很抱歉这没有用。请稍后再尝试保存 如果仍然不起作用,请单击“保存副本”
我看到该文件试图在Microsoft Office上传中心上传,所以这是进展。
我似乎无法绕过此上传失败消息。
我已经通过手动上传我尝试自动上传的文件来测试我对文档库的权限是否足够。
那么,如何使用ThisWorkbook.SaveAs
将文件保存到Sharepoint文档库?
我正在使用Excel 2013和Sharepoint 2013。
答案 0 :(得分:0)
虽然我无法解释,但经过一些修修补补后,我相信我找到了解决方案。
更改
ThisWorkbook.SaveAs Filename:=excelFile
要
ThisWorkbook.SaveAs fileName:=excelName, FileFormat:=xlOpenXMLWorkbook, ConflictResolution:=xlUserResolution
似乎是为了让它发挥作用。
我明确设置了FileFormat
和ConflictResolution
参数,用户可以保存。