首页 > 解决方案 > VBA - 尽管 On Error Resume Next 出现“下标超出范围”错误

问题描述

下面的代码应该检查当前是否打开了“Book1.xlsx”工作簿。如果不是,那么它应该打开它。

当它检查打开的工作簿但找不到它时,程序应该抛出“下标超出范围”错误。为了解决这个问题,我添加了“On error resume next”,但它仍然会在屏幕上弹出。

你知道为什么错误捕获例程没有处理这个问题(错误应该被忽略并继续执行代码)吗?

Sub TestBook()
    Dim strBookName As String, filepath As String, TestBook As Workbook, usr As String
    usr = Environ("username")
    filepath = "C:\Users\" & usr & "\Desktop\book1.xlsx"
    strBookName = "book1.xlsx"

    On Error Resume Next
    Set TestBook = Workbooks(strBookName)
    On Error GoTo 0

    If TestBook Is Nothing Then
        Set TestBook = Workbooks.Open(FileName:=filepath)
    Else
        MsgBox strBookName & " is open", vbOKOnly + vbInformation
    End If
End Sub

标签: excelvbaerror-handling

解决方案


推荐阅读