如何使用VBA将文件上传到OneDrive业务(共享点)

时间:2019-07-10 21:54:09

标签: excel vba onedrive

我正在尝试找到一种方法,可以从Excel中的VBA将文件上传到Onedrive。 我已经做了很多寻找可接受方法的搜索,但是大多数方法在我的方案中不起作用,否则建议的解决方案将给出错误信息。

如果我使用的是UNC路径或本地同步的OneDrive位置(例如“ C:\ Users(用户名)\ OneDrive \文件共享”),则可以上传文件,但是我需要一种方法让我推送(上传)文件到共享的网址位置(例如“ https://my.sharepoint.com/:f:/r/personal/(email_address)/Documents/SharedFiles?csf=1&e=6WmUIO”)。所有需要使用该工具的用户都可以访问OneDrive中的该共享位置。

我在VBA中尝试了常规的“另存为”方法,但这种方法不起作用。

Set Excelwb = ThisWorkbook

Excelwb.SaveAs fileName:="https://my.sharepoint.com/:f:/r/personal/(email_address)/Documents/SharedFiles?csf=1&e=6WmUIO" _
, FileFormat:=xlOpenXMLWorkbook, ConflictResolution:=xlLocalSessionChanges

Excelwb.Saved = True
Excelwb.Close SaveChanges:=False
Application.DisplayAlerts = True

我希望这样做可以保存文件,但是我了解到,由于我将保存到URL而不是本地文件中,因此可能需要使用另一种方法,但是我找不到能起作用的方法。

我得到的错误是: 运行时错误'1004' 对象“ _Workbook”的方法“ SaveAs”失败

2 个答案:

答案 0 :(得分:0)

我刚刚尝试了一下,效果很好:

Activeworkbook.SaveAs "https://myComany.sharepoint.com/Departments/dept1/Documents/FGH/Text.xlsx"

要获取所需的路径,请在IE中浏览至目标,然后使用库选项卡>>用资源管理器打开在Windows资源管理器中打开目标:您可以从地址栏中复制路径

答案 1 :(得分:0)

也许这将帮助某人拔头发。确保将SharePoint URL中的和空格替换为%20。示例“新文件夹”应为“ New%20Folder”,或从文件夹名称中删除空格。