VBA从Sharepoint以只读方式打开Excel文件

时间:2018-06-25 17:49:24

标签: excel vba excel-vba sharepoint

我创建了宏以从Sharepoint位置自动打开,编辑,保存和关闭多个Excel工作簿。下面的代码打开工作簿( path 遍历列表以击中每个工作簿名称):

Workbooks.Open Filename:=path, ReadOnly:=False, Editable:=True

但是,文件以只读模式打开,并且“启用编辑”的黄色对话框选项根本没有出现。

file appears like a normal Read-Only file without the option to Enable Editing

我仍然可以通过宏手动编辑这些工作簿,但是之后如果不另存为新文件,便无法将文件保存回Sharepoint。

我当前正在使用Excel2013。大约一年前,它已按预期工作,但是我认为可能已对Office 365进行了更新。我检查了所有Excel工作簿安全性选项,默认情况下未设置任何打开项为只读。

是否可以通过宏使文件以可编辑的方式打开,或者至少允许每个工作簿都显示“启用编辑”选项?

3 个答案:

答案 0 :(得分:1)

我一直在尝试解决文件的相同问题,最终做到了!所以我觉得我也许可以让其他人知道。而且这个古老的话题出现在我的Google搜索顶部附近。

对我来说,解决该问题的方法是编辑链接。

来自: https://Company.sharepoint.com/:x:/r/teams/TeamNo/Shared%20Documents/Example/CoolFolder/TheBestExcelFile.xlsm

收件人: https://Company.sharepoint.com/teams/TeamNo/Shared%20Documents/Example/CoolFolder/TheBestExcelFile.xlsm

请注意,我仅使用replace来摆脱:x:/ r / 。我觉得我之前应该已经注意到这一点,但是我没有,也没有过多地干预工作簿。Open参数使我无处不在。奇怪的是,默认的链接复制内容为您提供了带有特殊命令的内容。对于我们公司而言,大多数文件夹都有空格,因此链接中包含大量的“%20”,因此我只需阅读“:x:/ r /”即可。

希望它对某人有帮助。

为清楚起见,请尝试以下操作:

Sub Example()

'1.) Get filepath from somewhere
FilePath = Replace("https://Company.sharepoint.com/:x:/r/teams/TeamNo/Shared%20Documents/Example/CoolFolder/TheBestExcelFile.xlsm", ":x:/r/", "")

'2.) Open the file
Set StatisticsFile = Workbooks.Open(FileName:=FilePath, Password:="123")

'3.) Do things

'4.) Close the Sheet, save the changes. I simply like it this way, could be done in a single line.
StatisticsFile.Save
StatisticsFile.Close savechanges:=False

End Sub

我注意到此解决方案,因为如果导航到SaveAs,仍然可以使用相同的名称手动保存.xlsx文件。因此,如果您通过宏打开文件后仍然可以这样做,请尝试类似的解决方案。

答案 1 :(得分:0)

为Excel-OneDrive-SharePoint设计的交互是2016年应用程序中的新增功能,该版本是正常工作的必要条件。

版本2013可以通过调整有关Office共同创作配置的OnDrive“帐户”设置来工作,该设置专门适用于Excel和Word

右键单击任务栏中的OneDrive图标以进行设置

祝你好运!

答案 2 :(得分:-1)

打开后在代码中添加“ ActiveWorkbook.LockServerFile”时,出现应用程序定义或对象定义的错误。

这是我的代码: 打开文件名:= FilePath&WBName,ReadOnly:= False,可编辑:= True ActiveWorkbook.LockServerFile

我也尝试添加: ActiveWorkbook.ChangeFileAccess模式:= xlReadWrite 但这告诉我工作簿已被锁定,无法由“另一个用户”编辑。

当我关闭excel并从SharePoint中手动打开工作簿时,它会打开以进行更新,并且我可以保存工作簿。

我正在在线使用Office 365和SharePoint