关于VBA中的错误处理,我有一个简单的问题。我知道如何使用On Error GoTo ErrHandler语句,但我宁愿使用预制的VBA消息,而不是在指定的标签上使用我自己的代码。在C#中类似于以下内容:
catch(Exception ex){
Console.Writeline(ex.Message);
}发布于 2014-05-16 04:30:14
在错误处理程序代码中,您可以访问Err.Number和Err.Description。错误消息中的描述是您在没有错误处理的情况下看到的,因此它相当于代码示例中的ex.Message。
发布于 2014-05-16 04:35:41
创建一个ErrorHandler模块并将此子模块放入其中。
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在项目中的任何地方调用它,就像这样。
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我使用一个模块作用域常量来保存模块名称。根据您的需要进行修改。
https://stackoverflow.com/questions/23687970
复制相似问题