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
初始错误未关闭时的错误示例。
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)