Excel VBA 全局错误处理

标签 excel vba

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

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

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

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

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

最佳答案

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

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

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

关于Excel VBA 全局错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940697/

相关文章:

excel - 如何在excel VBA中引用命名表列?

java - 保存 Excel 表的数据透视缓存

arrays - 更新存储在 VBA 字典中的数组

excel - #NA 值的清理 Excel

excel - 减少重复代码以避免 "Procedure Too Large"错误

vba - 如何检查 VBA 中是否指定了可选字符串参数

c# - 使用 Can Grow 导出到 Excel 的 Crystal Reports

vba - 不需要的循环工作簿_AfterSave

arrays - 根据条件将单元格值分配给数组

VBA 查找引用工作簿中的第一张表而不是 "Sheet1"