检查其他用户是否已打开共享工作簿



我正在开发一个程序,其中一些数据保存在Excel文件中。这是一个共享文件,因此每个人都可以使用它。在打开文件之前,我想知道该文件是否已打开供其他用户写入。目前我正在使用下面的代码:

Dim app As New Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
If app.Workbooks.CanCheckOut("O:T_Fiabilidade_QMM6RecursosInformáticosSW Occupation rateRPRS.xlsx") = True Then
MsgBox("Available")
Else
MsgBox("Não disponível")
End If
End Sub

但是即使文件已关闭,它也总是向我返回消息"Não disponível"。谁能帮我?

尝试检查工作簿的属性ReadOnly如果为真,
那么有人正在使用工作簿:

Dim app As New Application
Dim book As Workbook
Dim sheet As Worksheet
Public Function IsWokBookInUse() As Boolean
book = app.Workbooks.Open("")
If book.ReadOnly = True Then
MsgBox("the file is in use")
' optional: close workbook...'
book.Close()
app.Quit()
Return True
Else
MsgBox("o.k")
Return False
End If
End Function

最新更新