繁体   English   中英

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

[英]Check if a shared workbook is already open by another user

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

    Dim app As New Excel.Application
    Dim book As Excel.Workbook
    Dim sheet As Excel.Worksheet

    If app.Workbooks.CanCheckOut("O:\T_Fiabilidade_QMM6\Recursos\Informáticos\SW Occupation rate\RPRS.xlsx") = True Then
        MsgBox("Available")
    Else
        MsgBox("Não disponível")
    End If
End Sub

但是,即使文件已关闭,它也始终向我返回消息“Nãodisponí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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM