Excel VBA - 工作簿是否打开

时间:2018-03-22 18:12:13

标签: excel-vba vba excel

我想确定某个工作簿是否已由用户或网络上的其他用户打开,文件扩展名可能位于.xls,.xlsx或.xlsm

  1. 工作簿路径和名称已知,但文件扩展名不是。
  2. 如果在用户PC上打开工作簿,则激活工作簿。
  3. 如果工作簿由网络上的其他用户打开,则显示消息。
  4. 如果工作簿未打开,请将其打开。
  5. 我尝试过使用下面的功能,但这需要知道文件扩展名,否则我会收到53错误代码

    Function IsFileOpen(fileName As String)
    
    Dim fileNum As Integer
    Dim errNum As Integer
    
    On Error Resume Next
    fileNum = FreeFile()
    
    Open fileName For Input Lock Read As #fileNum
    Close fileNum
    
    errNum = Err
    
    On Error GoTo 0
    
    Select Case errNum
        Case 0      'errNum = 0 means no errors, therefore file closed
            IsFileOpen = False
        Case 70     'errNum = 70 means the file is already open
            IsFileOpen = True
        Case Else   'Something else went wrong
            IsFileOpen = True
    End Select
    

0 个答案:

没有答案