On Error Resume Next似乎无法正常工作

why*_*heq 3 excel vba excel-vba

我有以下两行代码:

On Error Resume Next
myWorkbook.Sheets("x").Columns("D:T").AutoFit
Run Code Online (Sandbox Code Playgroud)

我已经进入宏并执行该行On Error Resume Next,然后在下一行myWorkbook...执行以下操作:

在此输入图像描述

为什么编译器不会恢复下一行代码?

On Error在整个程序代码中被广泛使用; 我意识到最好的做法是尽可能少地使用它,但它似乎符合这个宏的目的.

读这个SO QUESTION它说你不能在另一个中有一组错误捕获.如何在代码移动之前保证一组错误捕获已"关闭" - On Error Goto 0重置错误捕获?如果它确实重置了,为什么不能恢复以下工作?:

Sub GetAction()
Dim WB As Workbook
Set WB = ThisWorkbook

On Error GoTo endbit:
'raise an error
Err.Raise 69
Exit Sub
endbit:
On Error GoTo 0

On Error Resume Next
WB.Sheets("x").Columns("D:T").AutoFit

End Sub
Run Code Online (Sandbox Code Playgroud)

Iri*_*ium 10

还有一个VBA设置将导致On Error ...语句被忽略,并且该对话框始终显示.有关检查/更改选项的更多详细信息,请参阅此答案:https://stackoverflow.com/a/3440789/381588

  • 感谢值得记住 - 但它不是在那个设置 - 它在'打破所有未处理的错误' (2认同)

bre*_*tdj 3

初始错误未关闭时的错误示例。

Sub GetAction()
Dim WB As Workbook
Set WB = ThisWorkbook
On Error GoTo endbit:
'raise an error
Err.Raise 69
Exit Sub
endbit:
On Error Resume Next
WB.Sheets("x").Columns("D:T").AutoFit
End Sub
Run Code Online (Sandbox Code Playgroud)