有人可以解释一下这段代码的含义吗? 我想如果发生错误请转到ErrHandler部分,但为什么接下来会有一个简历并且中间有一个Exit子?
On Error Goto ErrHandler:
N = 1 / 0 ' cause an error
'
' more code
'
Exit Sub
ErrHandler:
' error handling code
Resume Next
End Sub
我还写了一个简短的代码来更好地理解。 如果你在VBA excel中运行它,你会得到4个按顺序弹出的数字:1,2,2,4 我理解前两个数字,但为什么第三个数字2和最后一个数字4? 顺便说一下这个例子没有发生错误。
On Error Goto Err:
n = 1
MsgBox n
Err:
n = 2
MsgBox n
Resume Next
MsgBox 4
Resume Next
End Sub
答案 0 :(得分:2)
已经说过Resume Next将在错误发生后的那一刻获取执行。还有Resume,它从导致错误的行开始执行执行,Resume从指定标签处获取执行。
所以,这就是你提供的代码中发生的事情:
以下链接提供了一个简单的解释oerror处理和三个resume语句:
答案 1 :(得分:1)
它在发生错误之后的那个点获取方法体的执行。
答案 2 :(得分:1)
来自 On Error 文档:
指定发生运行时错误时,控制转到发生错误的语句后面的语句,并从该点继续执行。