Excel VBA全局错误处理

evo*_*ndy 3 excel vba excel-vba

有没有办法进行全局错误处理?

我可以在工作簿代码中放入一些代码来捕获所有模块中发生的任何错误吗?

我可以在每个模块中放置相同的错误处理程序,但我正在寻找更通用的东西.

我问,因为我有工作表名称存储为这样的全局变量Sheets(QuoteName).如果存在错误,则这些全局变量将丢失.我有一个宏将重命名全局变量,但我把它放在内Workbook_BeforeSave.

我希望它转到全局错误处理程序并重命名全局变量,如果我得到一个下标超出范围错误Sheets(QuoteName)

Pet*_*ert 7

正如Sid在评论中已经提到的那样,没有中央错误处理程序.

最佳实践是使用从本地错误处理程序调用的中央错误处理例程.看看伟大的MZ-Tools:它可以在按下按钮(Ctrl- E)时定义默认的错误处理程序.您可以自定义此错误处理程序 - 它还可以包含模块和/或子名称!

另外,请查看Daily Dose of Excel上的这篇文章.这是Dick Kusleika在本书中提出的错误处理程序的OO版本(我强烈推荐).