繁体   English   中英

VBA-错误时转到goto excel错误消息

[英]VBA - goto excel error message in error handling if

我想为vba编写错误处理,将其定向到错误处理后将首先检查特定的错误,如果不匹配,它将根据Excel显示错误消息。

这是我的代码:

On Error GoTo ErrorHandl

ErrorHandl:
If Err.Number = 13 Then
  MsgBox "Do that …", vbCritical
  Exit Sub
Else
??????

我可以在问号处写些什么,以便如果错误号不同于13,则excel将向我显示当前正在发生的另一个错误?

这是使用Select Case:获取自定义错误的一种可能方法。 如果错误是数字11(除以0),那么它将给出一个自定义的MsgBox 否则,它会根据系统的当前语言(我的语言是德语)给出带有Err.NumberErr.Description的标准代码:

在此处输入图片说明

编码:

Sub TestMe()

    On Error GoTo TestMe_Error

    Debug.Print 5 / 0

    On Error GoTo 0
    Exit Sub

TestMe_Error:

    Select Case Err.Number
    Case 11:
        MsgBox "Division by null is not allowed on this planet!"
    Case Else:
        MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure TestMe."
    End Select

End Sub

如果您需要多功能错误处理程序,则代码如下:

Sub TestMe()

    On Error GoTo TestMe_Error

    Debug.Print 5 / 0

    On Error GoTo 0
    Exit Sub

TestMe_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure TestMe."

End Sub

您现在编写的代码是特定于错误号的。 您还可以编写常规错误处理程序

Sub test()
On error GoTo Errorhandler

 '''
 'Code
 '''

Exit Sub
Errorhandler:
MSgbox "Warning: fatal error occured." & vbCr & vbCr "Error message:" & vbCr & Err.Description, vbcritical, "Error"
End Sub

不管发生哪个错误,它都会显示一个消息框,警告用户致命错误,然后显示VBE中显示的错误消息。

当然,您也可以指定错误代码,而不是将其设置为通用代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM