谁能找出 VBA 中“On error goto -1”和“on error goto 0”之间的区别吗?我尝试过 google 和 msdn,但没有成功。
最佳答案
On Error GoTo 0
禁用过程中当前存在的任何错误捕获。
On Error GoTo -1
清除错误处理并将其设置为空,这样您就可以创建另一个错误陷阱。
示例:出错时转到 -1
在引发第一个错误后,它将GoTo ErrorFound
,然后清除例程的错误处理并设置一个新的错误处理,当出现错误时,它将GoTo AnotherErrorFound
找到了。
Sub OnErrorGotoMinusOneTest()
On Error GoTo ErrorFound
Err.Raise Number:=9999, Description:="Forced Error"
Exit Sub
ErrorFound:
On Error GoTo -1 'Clear the current error handling
On Error GoTo AnotherErrorFound 'Set a new one
Err.Raise Number:=10000, Description:="Another Forced Error"
AnotherErrorFound:
'Code here
End Sub
示例:出错时转到 0
出现第一个错误后,您将收到该错误,因为错误处理已被禁用。
Sub OnErrorGotoZeroTest()
On Error GoTo 0
Err.Raise Number:=9999, Description:="Forced Error"
End Sub
关于excel - 'on error goto 0' 和 'on error goto -1' 之间的区别 -- VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158901/