On Error Goto AAA语句,即当有错误发生的时候不提示错误,即刻执行AAA标签后的语句。
On Error Resume Next 即不提示错误,直接执行错误语句的下一句。
On Error Goto 0,停止错误处理(默认情况),当有错误时会中断程序,提示错误信息并将程序停留在错误的那一句语句。
Err.Clear即清除 Err 对象的所有属性设置。
默认情况下当有错误发生的时候,中断程序,提示错误信息并将程序停留在错误的那一句语句。这时候Err.Clear是没有办法执行的。
只有当设置为On Error Goto AAA或On Error Resume Next时,由于可以执行下一句,Err.Clear才显得有价值,看下面Test和Test2:
Test执行到第二句就停下了,执行不到Err.Clear。Test2可以继续执行,可以观察错误号的变化。
Sub test()
On Error GoTo 0
Sheets("Sheet123").Select
Err.Clear
End Sub
Sub test2()
On Error Resume Next
MsgBox Err.Number
Sheets("Sheet123").Select
MsgBox Err.Number
Err.Clear
MsgBox Err.Number
End Sub
Err.Clear消除Err属性后,可以方便我们察看那句出错。