我想仅对代码中的下几行应用“On Error GoTo err1”:
On Error GoTo err1
ActiveWorkbook.SaveAs Filename:="C:\project\" & Year(Date) & "\" & _
MonthName(Month(Date)) & "\" & MyFileName & ".xls"
ActiveWorkbook.Close SaveChanges:=False
就是这样,之后我想禁用错误处理 . 我试图添加“On Error resume”,但没有任何结果 . err1处理看起来像这样:
err1:
MsgBox ("Project will not overwrite the file"), vbCritical
ActiveWorkbook.Close SaveChanges:=False
此子程序将一个文件保存到新的.xls文件中,它会按日期自动保存 . 如果已生成文件,并且当要求覆盖文件时,将运行宏的人点击"No",此 err1
将弹出消息并阻止用户获取调试消息 . 但是,这个错误处理似乎是通过所有不好的代码 - 保存文件后生成一个自动电子邮件,如果该人想要在单击"send"按钮之前返回项目,它会转到同一个 err1
并关闭原始工作簿(不是第一次发生的单独工作表)并使用户无语 . 我想避免这种情况,因为具有不良Excel技能的用户将生成这些报告 .
有什么建议?
1 回答
这实际上不是一个答案,但我无法评论它 .
我假设你做了类似下面的事情 . 所以你有点 sandwich 你的怀疑线产生OEG和OEG0的错误,如下所示:
现在你看,在OEG0行之后不再调用你的错误处理程序 .
遇到第二个错误生成行后,将引发正常错误 .
Now, you might want to check this out to review error handling .