提问人:Adnan Zafar 提问时间:11/16/2023 更新时间:11/16/2023 访问量:38
在 VBA 中签入/签出 SharePoint/OneDrive 文档的确切工作方式?
How exactly does checking in/checking out a SharePoint/OneDrive document work in VBA?
问:
我的总体目标是让一个 Excel 文档(此代码所在的文档)打开存储在 SharePoint/OneDrive 中的单独 Excel 文档,向其写入一些数据,然后关闭它。带有代码的文档旨在供我和我的一些同事使用,我们都写到同一个辅助文档,我有两个分别打开和关闭工作簿的函数。
代码如下:
Function open_wb() As Workbook
Application.ScreenUpdating = False
Dim wb_name As String
wb_name = "https://redacted/path/to/file.xlsb"
Dim checked_out As Boolean
checked_out = False
If Workbooks.CanCheckOut(wb_name) Then
Call Workbooks.CheckOut(wb_name)
checked_out = True
Set open_wb = Workbooks.Open(wb_name)
End If
If Not checked_out Then
Set open_wb = Nothing
End If
End Function
Function close_wb(ByRef wb As Workbook)
If wb.CanCheckIn Then
wb.CheckIn SaveChanges:=True, Comments:="abc"
Application.ScreenUpdating = True
Set wb = Nothing
Else
MsgBox "Unable to check in"
End If
End Function
现在我遇到了这个问题。首先,它似乎对我的同事来说工作正常,但是当我尝试使用它时,无法签出写入的文件。除非我在Excel中打开它。这与这个答案背道而驰,该答案说文件不应该打开。
我的另一个担忧是:如果文件以某种方式被签出而没有重新签入,是否必须手动签入(或丢弃签出)?
如果它们返回 false,这些函数似乎几乎没有追索权。如果我无法签出文件,我有什么选择来解决这个问题?我还担心,在我的测试中,我遇到了返回 true 的情况,然后我收到了来自 的错误。这些功能在什么情况下会失败,我该如何应对故障?CanCheckOut
CanCheckIn
CanCheckOut
Workbooks.CheckOut
答: 暂无答案
评论