vba Open excel when File is used by another user

后端 未结 3 660
我在风中等你
我在风中等你 2021-01-26 06:16

This is my current code

Public Sub OpenFiles()
    \'Set LiveDealSheet file path
    \'Check if LiveDealSheet is already open
    LDSP = \"C:\\Users\\DCHEUNG\\De         


        
3条回答
  •  余生分开走
    2021-01-26 07:01

    First of all thanks for you input. I have solve the problem on my own with some trial and error.

    changed the code to the following

    Public Sub OpenFiles()
        'Set LiveDealSheet file path
        'Check if LiveDealSheet is already open
        LDSP = "Z:\LiveDealSheet.xlsm"
        IsOTF = IsWorkBookOpen(LDSP)
    
        'Set quick workbook shortcut
        Set TWB = ThisWorkbook
        If IsOTF = False Then
            Set LDS = Workbooks.Open(LDSP)
            Debug.Print "Stage 1 Success"
    

    changed everything in this else statement

        Else
            On Error Resume Next
            Set LDS = Workbooks("LiveDealSheet.xlsm")
            If LDS Is Nothing Then Workbooks.Open FileName:=LDSP, ReadOnly:=True, IgnoreReadOnlyRecommended:=True
        End If
    End Sub
    
    Function IsWorkBookOpen(FileName As String)
        Dim ff As Long, ErrNo As Long
    
        On Error Resume Next
        ff = FreeFile()
        Open FileName For Input Lock Read As #ff
        Close ff
        ErrNo = Err
        On Error GoTo 0
    
        Select Case ErrNo
        Case 0:    IsWorkBookOpen = False
        Case 70:   IsWorkBookOpen = True
        Case Else: Error ErrNo
        End Select
    End Function
    

提交回复
热议问题