gpt4 book ai didi

excel - VBA 中的 checkout 工作簿

转载 作者:行者123 更新时间:2023-12-04 21:39:03 25 4
gpt4 key购买 nike

我有一些 VBA,我正试图在进行更改之前查看工作簿。 VBA 代码位于其自己的工作簿中,并由用户打开另一个工作簿并选择执行代码以修改工作簿的按钮来激活。一开始我想检查工作簿是否已 checkout 。我遇到的问题是 Workbooks.CanCheckOut(ActiveWorkbook.FullName) 始终返回 false,即使未 checkout 工作簿也是如此。

If Workbooks.CanCheckOut(ActiveWorkbook.FullName) = True Then
Workbooks.CheckOut (ActiveWorkbook.FullName)
MsgBox "This workbook has been checked out"
Process = True
ElseIf ActiveWorkbook.CanCheckIn = False Then 'if not checked out
Process = False
MsgBox ("The Document may not be checked out, Import Process is ending.")
Else
Process = True
End If 'If CanCheckin = False

预先感谢您的帮助。

最佳答案

我通过反复试验发现 Workbooks.CanCheckOut (Filename:= FullName)其中 FullName 是 SharePoint 文件的 URL 仅适用于未在当前 Excel 实例中打开的文件。

该方法将始终返回 False如果您在当前 Excel 实例中打开了文件,这显然是这里的情况。
Workbooks.CheckOut (ActiveWorkbook.FullName)打开文件,检查它,然后莫名其妙地关闭文件。因此,打开和 checkout SharePoint 文件只需 3 个步骤。

Sub CheckOutAndOpen()
Dim TestFile As String

TestFile = "http://spserver/document/Test.xlsb"
If Workbooks.CanCheckOut(TestFile) = True Then
Workbooks.CheckOut(TestFile)
Workbooks.Open (TestFile)
Else
MsgBox TestFile & " can't be checked out at this time.", vbInformation
End If
End Sub

这有点违反直觉,因为在手动处理 SharePoint 文件时,您必须打开它们以查看它们是否可以被 checkout ,然后执行 checkout 操作。

MSDN 或 Excel VBA 都没有提到 Workbooks.CanCheckOut (Filename:= FullName)如果您在当前 Excel 实例中打开了文件,则该方法始终返回 False。

关于excel - VBA 中的 checkout 工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com