如何使用VBA将文件锁定在onedrive中?

时间:2019-02-01 13:21:09

标签: excel vba onedrive

我正在制作一个vba程序,该程序可以访问OneDrive中的文件并对其进行编辑。但是,我不希望两个用户能够同时编辑文件。我无法完全锁定文件,因为当一个用户在编辑时,其他用户可能仍在阅读该文件。 我曾经用这样的东西锁定文件:

If varForReadOnly = False Then
   wbExample.LockServerFile
End If

这在我的程序版本上从未起作用,但是在我的客户上工作了几个月。现在,改变OneDrive文件的名称后,这已停止工作忽然,有它在我的电脑相同的错误。

有人知道我做错了什么,或者我可以做什么来锁定文件? 谢谢!

1 个答案:

答案 0 :(得分:0)

经过大量搜索,我发现了如何执行此操作。我将把答案留在这里,因为我仍然找不到这个问题的答案。

您必须使用CheckIn()和CheckOut方法。像这样:

If Workbooks.CanCheckOut(varForFilePath) = True Then
   Workbooks.CheckOut(varForFilePath)
   Set wbVarForWorkbook = Workbooks.Open(varForFilePath)
   'works with workbook and in the end check it back     
   wbVarForWorkbook.CheckIn SaveChanges:=True
Else
   'message about busy workbook
End If

此方法很复杂,在使用它们时还需要注意其他事项,但这是用于替换LockServerFile并在OneDrive中锁定文件的方法的基本答案,这样一次只能一个用户可以编辑它。