On Error是有用的错误提示语法,它可以放在程序开头,下面列举了嵌套到2次的子程序s_2,看是否有效?
新建From1(窗体),新建Command1(按钮CommandButton),代码:
Private Sub Command1_Click()
On Error GoTo hErr
Call s_1
hErr:
MsgBox "错误号:" & Err.Number & vbCrLf & Err.Description, vbCritical, "错误"
End Sub
Private Sub s_1()
Call s_2
End Sub
Private Sub s_2()
MsgBox 3 / 0
End Sub
Private Sub Command2_Click()
On Error GoTo mark1
If 1 = 2 Then
On Error Resume Next
Exit Sub
End If
Debug.Print 1 / 0 '1 = 1时不执行本行,1 = 2时这行报错。
mark1:
Debug.Print "over"
End Sub
运行结果:
错误号:11
除数为零 16 错误
看来是有效的。毕竟Command1_Click还可能调用很多子程序。
另外Command2_Click还演示了= 1时不执行本行,1 = 2时这行报错。