如何捕获导致 VBA 错误的变量名或对象名?
前任
Sub test()
On Error GoTo Handler
i = 0
n = 1/i
Handler:
Select Case variablename
Case "n"
'do something................
最佳答案
该错误不是由变量引起的。该错误是由试图将 1 除以 0 的代码行引起的。分配实际上并没有发生。
我发现在积极开发时诊断问题的最佳方法是拥有 Stop
然后 Resume
在错误处理程序中。
Public Sub func()
On Error GoTo ErrHandler
'... some code here ...
Exit Sub
ErrHandler:
Stop
Resume
End Sub
它的工作方式是,当出现错误时,VBA 将在
Stop
上中断(暂停执行,显示指令指针箭头和黄色突出显示) .您可以转至Resume
然后再次找出导致错误的特定代码行。一旦您开始了解您遇到的错误,您就可以构建单独的 If ... Then 案例,让他们适本地处理每个案例。当您准备好将代码发布到生产环境中(即,为其他用户)时,您需要将 Stop/Resume 替换为意外错误处理程序,该处理程序将其记录或显示给用户。
关于vba - 捕获导致错误的变量/对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25292073/