我正在处理大量包含许多程序的工作簿。我在项目中走得越深,我就越会尝试编写函数或子程序来处理常见任务。首先,由于最终用户将是普通 Excel 用户,我决定将我的所有代码保护和集中在个人宏工作簿中。在我看来这是个好主意,但也许你们中的一些人,Excel 专家,不同意。然后我写了一个Public Sub ErrorHandler()来处理我所有过程中的错误。我完全了解Error Bubble Up。我的程序将是这样的:
' All déclarations are outside
Public Sub ErrorHandler ()
Lg1 = Err.Number ' Lg1 is Long
Select Case Lg1
Case 1004
MsgBox ("File is not fund. Please verify its path.")
Exit Sub '!EDITED! <GoTo NextCode:> is much better indeed
' ...more code with other errors...
End Select
NextCode: ' !EDITED!
' ...some cleaning and initialize variables to nothing or 0
Lg1 = 0
Err.Clear
End Sub
然后我想以这种方式在其他子中使用这个子:
On Error Go To MyError: ' <On Error call ErrorHandler> is not permited
'...more code....
MyError:
call ErrorHandler
现在有几个问题:
- 这是一个好习惯吗?如果没有,你会推荐什么?
- 例如,在 1004 的情况下,当我说Exit sub时,ErrorHandler sub本身会结束并进行清理工作,还是也会停止?
- 关于常见和有用的用户定义错误 (513-65535) 有什么好的提示吗?
谢谢你的帮助。