【发布时间】:2017-06-28 12:47:20
【问题描述】:
我有以下代码。但是错误没有得到处理
Sub Some_sub()
Some code here
On Error GoTo resumeCode
If Workbooks("Some file.xlsm").ReadOnly Then
GoTo readOnlyError
End If
resumeCode:
On Error GoTo fileNotOpen
Workbooks("Some file.xlsm").Activate
some more code here
Exit Sub
fileNotOpen:
MsgBox "Error: Claims followup.xlsm is not open." & Chr(10) & Chr(10) &
"Open the file in read/write"
Exit Sub
End Sub
当我运行调试模式时,它会显示这一行:Workbooks("Some file.xlsm").Activate 黄色。而不是处理错误并转到标签。
在工具 -> 选项 -> 常规选项卡下的 VBA 中:在未处理的错误时中断处于活动状态。
当我打开文件时,它会按应有的方式运行代码。当它关闭时,它不会处理错误。
我做错了什么?
提前感谢您的帮助
【问题讨论】:
-
执行此代码时是否打开了文件“some file.xlsm”?您是否在同一个 Sub 中定义了带有 fileNotOpen 标签的行?另外:以黄色显示错误线正是您所指的选项所做的。如果您关闭该选项,您应该转到“fileNotOpen”标签之后黄线失败(再次按 F8)。
-
@RikSportel 选项
Break on Unhandled Errors实际上是使代码跳转到错误处理标签而不中断的选项。无论如何,@OP,除了上面的问题,你在同一个 sub 中还有其他一些On Error语句吗? -
我稍微更新了代码。我还有其他错误转到标签是的,但它们在此错误处理(尝试)之前,并且它们有效。
-
@A.S.H 是的,你是对的,我的错。它会在未处理时破裂(不应该如此),但就像未处理一样(因此我的问题)。
-
@SergeInácio,如果您在该行之前有
On Error Resume Next并且确实发生了错误,那么除非您致电Resume something,否则您的新On Error GoTo fileNotOpen将无法工作。发布其中一些声明。
标签: excel error-handling vba