错误处理只工作一次

kai*_*inC 3 excel vba

我有一个非常简单的 VBA 代码,它应该尝试打开一个不存在的文件,将我发送到错误处理程序,然后在无限循环中(有意地)返回到我的代码。

但是,编译器仅在第一次捕获错误,然后在第二次通过时中断。

我已经尝试了 On Error 语句的每一种组合,以便在第二次通过时将其发回,但似乎没有任何效果。这是代码:

Sub TestError()
    On Error GoTo errError
lblError:
    On Error GoTo errError
    'Code that should raise an error and send to errError
    Excel.Application.Workbooks.Open ("lakdfjldkj")
    Exit Sub
errError:
    MsgBox "Code didn't break"
    GoTo lblError
End Sub
Run Code Online (Sandbox Code Playgroud)

有什么我遗漏的吗,或者这是一个错误?

不要测试这个,除非你对必须杀死 Excel 感到平静,或者为循环添加额外的条件

小智 6

使用Resume到...好...简历处理错误处理程序后。

Sub TestError()
    On Error GoTo errError

    'Code that should raise an error and send to errError
    Excel.Application.Workbooks.Open "lakdfjldkj"
    Exit Sub
errError:
    MsgBox "Code didn't break"
    Resume
End Sub
Run Code Online (Sandbox Code Playgroud)

我已经使用这样的代码来访问某个工作表,如果没有找到,那么错误处理程序会创建一个具有正确名称的工作表,然后继续处理。