【发布时间】:2020-07-17 01:52:51
【问题描述】:
我有一个存储在 Sharepoint 中的 excel 文件(也可以通过 Microsoft Teams 访问),路径为:https://organization.sharepoint.com/PathOfFile/myFile.xlsx
借助 Sharepoint 中的共同创作功能,可以多人同时编辑文件。
我想使用本地存储在我的计算机中的另一个 excel 文件来访问和修改 Sharepoint 中的那个。这个本地文件有一个按钮,里面有这个 VBA 代码:
Sub UpdateSP():
f_name = "https://organization.sharepoint.com/PathOfFile/myFile.xlsx"
Workbooks.Open f_name
Workbooks("myFile.xlsx").Activate
ActiveWorkbook.Sheets("sheet1").Activate
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.Value = 9999
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = 0000
ActiveWorkbook.Close SaveChanges:=True
End Sub
原则上它可以工作,Sharepoint 中的文件被修改了。但是如果有人在我运行代码时编辑文件,就会出现问题,然后似乎创建了两个版本的文件,一个用于在线实时编辑,另一个用于我的代码。
如果发生这种情况,文件的在线版本将不会显示代码所做的更改,并且每当使用 excel 应用程序打开文件时,都会弹出一个窗口,询问应保留哪个版本的文件,丢失在已处置版本中所做的所有更改。
我尝试使用 CanCheckOut 和 CheckOut 方法,但无论出于何种原因,CanCheckOut 总是返回 False(这里有一些关于相同问题的问题,但我还没有找到解决方案) .
有人可以提出解决此问题的方法吗?谢谢。
【问题讨论】:
标签: excel vba sharepoint