If you don't use an On Error statement, any run-time error of VBA that occurs is fatal; that is, an error message is displayed and execution stops.
如何在捕获异常,将系统出错的信息告诉用户的同时,让程序正常退出?象其它语言一样,我们需要可以设置on Error Goto Err_Handler过程或Err_Handler().
1)On Error Resume Next
Specifies that when a run-time error occurs, control goes to the statement immediately following the statement where the error occurred where execution continues. Use this form rather thanOn Error GoTo when accessing objects.
2)On Erro Goto 0
Disables any enabled error handler in the current procedure.
3)On Error Goto Err_Handle
Sub InitializeMatrix(Var1, Var2, Var3, Var4)
On Error GoTo ErrorHandler
. . .
Exit Sub
ErrorHandler:
. . .
Resume Next
End Sub
Sample:
Private Sub CommandButton1_Click()
On Error GoTo Err_Handler
Dim sErrMsg As String
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 10
b = 0
c = a / b
MsgBox c
Exit Sub
Err_Handler:
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Error",Err.Helpfile,Err.HelpContext
[Resume Next]
End Sub
参考文件:http://www.bianceng.cn/Programming/vb/201001/14701.htm
http://www.chengxiuxing.com/excel/vba/vba-error-handling.html