vba - 捕获导致错误的变量/对象名称

标签 vba excel error-handling

如何捕获导致 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/

相关文章:

使用参数调用 VBA 例程的 JavaScript

mysql - 如何将特定单元格提取到 EXCEL 中的 SQL

php - 如何从 MySQL 导出到我的 PHP 站点中的 Excel 文件?

asp.net-mvc-2 - 处理 DDD 风格的 ASP.Net MVC2 Web 应用程序中的错误

excel - Excel VBA评估中的最后一行

python - 如何使用 Xlwings 和 Python 合并同一 Excel 工作簿中的所有工作表

vba - 使用范围选择多个工作表

php - Laravel-找不到 Controller 方法

error-handling - 如何使用 RecoverableError 重试?

ms-access - MS Access 2007 使用 VBA 打开特定记录的单独表单