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,
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.