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