【问题标题】:Check if a shared workbook is already open by another user检查共享工作簿是否已被其他用户打开
【发布时间】:2018-08-24 16:01:17
【问题描述】:

我正在开发一个程序,其中一些数据保存在 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ão disponível”。谁能帮帮我?

【问题讨论】:

    标签: excel vb.net shared


    【解决方案1】:

    尝试检查工作簿的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
    

    【讨论】:

    • 很高兴我能提供帮助,请通过单击复选标记图标将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多