检查工作簿是否打开vba,如果文件打开则崩溃

时间:2013-08-22 17:56:40

标签: excel vba file-io

我在这里找到了一些代码来检查工作簿是否打开,但是我得到了

Run-time Error '70': Permission Denied if the file is open.

我不确定如何处理此错误或修改代码来处理此错误。

Sub Sample()
    Dim Ret

    Ret = IsWorkBookOpen("I:\RJB\Juan's Project\Summary Sheet.xlsm")

    If Ret = True Then
        MsgBox "File is open"
    Else
        MsgBox "File is Closed"
    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 'This line is highlighted when the crash occurs
    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

1 个答案:

答案 0 :(得分:2)

这最初是一个被发现是这个问题的正确解决方案的评论,因此我将其添加为答案:

可能是VBA编辑器中的一个选项。打开VBA编辑器并转到工具 - >选项 - >一般 - >并在“错误陷阱”部分选择“打破未处理的错误” - >好。您可能会设置为“中断所有错误”。