我有一个非常简单的 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)
我已经使用这样的代码来访问某个工作表,如果没有找到,那么错误处理程序会创建一个具有正确名称的工作表,然后继续处理。