VBA On Error 未捕获错误

问题描述 投票:0回答:3

将其发布在这里,以防对其他人有帮助。我看到一些奇怪的行为:

Sub somesub()
On Error GoTo Handler
    Dim x
    x = 1/0
    MsgBox("Done")
    Exit Sub
Handler:
    MsgBox("Error was handled")
End Sub

没有发现错误。

已经有一个相关的问题,位于:Excel VBA Not Properly Breaking on Error,但它询问如何减轻在错误捕获设置中做出一个或另一个选择的副作用。这是在问为什么错误处理根本不起作用

vba error-handling
3个回答
3
投票
原来是在VBA编辑器中,

工具>>选项>>常规>>错误捕获

我选择了“Break on All Errors”,这会覆盖代码中转到或恢复错误的任何指令。将选择更改为“未处理的错误时中断”解决了我的问题。

答案来源:

VBA 中处理错误的五个技巧


0
投票
我已经为此苦苦挣扎了几个月。 工具>>选项>>常规>>错误捕获是准确的解决方案! 尽管我还构造了我的代码以在每次之前重置错误处理程序 onerror goto label: 语句如下 将其放在您想要的 onerror goto 代码上方:

错误转到-1'
<<--- found in a different post that this resets the handler


0
投票
有同样的问题。检查工具>>选项>>常规>>错误捕获,并将其正确设置为“Brek on Unhandled Errors”。但“On Error”仍然无法捕获溢出错误(err.num = 6)并且程序将停止(中断模式)。修复方法是删除我一直用来标记未声明变量的“Option Explicit”命令。这修复了它,现在错误处理程序可以工作了。

© www.soinside.com 2019 - 2024. All rights reserved.