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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值