excel - 如何在 VBA 中重新抛出错误

标签 excel vba

当出现错误时,我想做一些清理,然后让错误向上流动,以便全局处理。

在 C# 中,我会执行 try finally但这在 VBA 中是不可能的,只有 On Eror GoTo <mylabel> .

在标签中捕获错误时,如何正确地重新抛出错误?

是否只能使用所有属性再次调用 Err.Raise,否 throw like 关键字是否存在?:

Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext

最佳答案

这是正确的方法,但不,您不必重新声明所有 err 属性。值被保留:

err.raise Err.Number
是相同的
Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
https://docs.microsoft.com/en-us/office/vba/Language/Reference/user-interface-help/raise-method
如果您要抛出一个类模块,它可能会更复杂。默认情况下,类模块的 err 对象被捕获并重新创建,因此根据它的声明方式,可能会替换属性。

关于excel - 如何在 VBA 中重新抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250302/

相关文章:

mysql - 将电话号码格式化为10位数字(mysql)

excel - 对象 'Range' 的方法 '_Global' 失败。错误

excel - 电子邮件 Excel 范围 : Range to HTML with Hyperlinks

css - VisualBasic Web 浏览器不显示图像/CSS

vba - Excel VBA DIR 仅循环一次

asp.net - 在 asp.net 中编辑 Excel 文件

vba - 为什么一个小的 Excel VBA 宏运行速度非常慢

c# - 获取 Word 中菜单项的宏命令名称

vba - Excel VBA 每第 n 行插入分页符

excel - 如何在Excel中制作一个定期执行的宏?