【问题标题】:VBA Error Handling not working in ExcelVBA 错误处理在 Excel 中不起作用
【发布时间】:2010-08-09 14:00:49
【问题描述】:

我没有太多使用 VBA 的经验,但我有时会在工作中使用它。最近遇到了一个不该发生的问题,老板和我自己都想不通。

基本上,问题在于Application 属性DisplayAlerts 默认设置为True,并且由于某种原因无法更改。可能相关的是,当我遇到错误时,它总是显示 End|Debug|Help 警报并且从不点击应用的错误处理。

我在 64 位 Windows 7 机器上运行 64 位 Office 2010。但是,我认为这不是平台问题,因为我已经在多个不同的平台、操作系统和软件排列上进行了测试,并且没有其他机器出现此错误;只是我的。

我已经创建了一些示例代码,以防有人遇到过这个问题或有任何想法。我唯一能想到的是,我的机器上安装了一些导致这种情况的东西。但是在程序清除和多次重新启动之后,我并没有更接近破译它可能是什么。

Public Sub TestErrorHandler()

    ' Suppress alerts
    Application.DisplayAlerts = False

    Dim strArray(1) As String
    strArray(0) = "Hello"
    strArray(1) = "World"

    ' Set up error handler
    On Error GoTo ErrHandler

    For i = 0 To 3
        MsgBox strArray(i)
    Next

    ' Strip the error handler
    On Error GoTo 0

    ' Unsuppress alerts
    Application.DisplayAlerts = True

    Exit Sub

    ErrHandler:

    MsgBox "Error: " & Err.Description

    Resume Next

End Sub

for-loop 的第三个枚举中抛出错误(应该如此)。错误的类型无关紧要,重要的是我得到了错误并且从未点击错误处理程序。

对此的任何建议或帮助将不胜感激。

非常感谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    在 Excel 中按 ALT + F11 以访问 VBA 编辑器。

    转到工具菜单 -> 选项项 -> 常规选项卡。

    将错误捕获设置为“Break on unhandled errors”


    (来源:microsoft.com

    【讨论】:

    • 我记得那个,我也花了一段时间才弄明白。
    • 非常感谢!我知道我忽略了一些有趣的事情。效果很好!非常感谢:-D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    相关资源
    最近更新 更多