Handle Error in VBA

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章