VBA - On Error GoTo ErrHandler:

后端 未结 2 1621
星月不相逢
星月不相逢 2021-01-24 05:07

I have a simple question about error-handling in VBA. I know how to use the On Error GoTo ErrHandler statement but instead using my own code at the specified label,

相关标签:
2条回答
  • 2021-01-24 05:40

    In your error handler code your can access the Err.Number and Err.Description. The Description in the error message you would have seen without error handling, so is the equivalent of ex.Message in your code sample.

    0 讨论(0)
  • 2021-01-24 05:40

    Create an ErrorHandler Module and place this sub in it.

    Public Sub messageBox(moduleName As String, procName As String, Optional style As VbMsgBoxStyle = vbCritical)
        MsgBox "Module: " & moduleName & vbCrLf & _
            "Procedure: " & procName & vbCrLf & _
            Err.Description, _
            style, _
            "Runtime Error: " & Err.number
    End Sub
    

    Call it from anywhere in your project like so.

    Private sub Foo()
    On Error GoTo ErrHandler
    
    'do stuff
    
    ExitSub:
        ' clean up before exiting
        Exit Sub
    ErrHandler:
        ErrorHandler.messageBox "ThisModuleName","Foo"
        Resume ExitSub
    End Sub
    

    I use a module scoped constant to hold the module name. Modify to suit your needs.

    0 讨论(0)
提交回复
热议问题