VBA - On Error GoTo ErrHandler:

后端 未结 2 1620
星月不相逢
星月不相逢 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

    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.

提交回复
热议问题