【发布时间】:2013-03-17 09:37:42
【问题描述】:
我有以下两行代码:
On Error Resume Next
myWorkbook.Sheets("x").Columns("D:T").AutoFit
我已进入宏并执行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
【问题讨论】:
-
我们可以看看完整的代码吗?
-
@brettdj 所有 500 行!
-
@brettdj 你认为我需要确保关闭之前代码中的所有其他错误捕获吗?
-
是的 :) 我认为你已经有一个错误。
-
@Remou - Re.your 编辑:这个错误代码不是对所有 VBA 实现都通用吗?