Excel 类调试中引发的错误,如同在属性调用时引发一样
不幸的是,我正在用Excel2000VBA开发一个应用程序。我相信我已经发现,在自定义类属性、函数或子类中出现的任何错误都会像在VBA代码中调用该属性的点上出现的错误一样进行调试。也就是说,VBE调试器不会将我带到类属性中发生错误的位置,而是第一次输入属性的位置(例如,从模块子模块或函数)这使得开发比最浅显的OOExcel2000VBA代码更令人沮丧,因为我必须逐行遍历每个类方法,以发现导致错误的指令 我是否遗漏了一些东西,或者这是我必须在Excel2000中处理的已知错误?这是在2003年还是2007年修复的 示例代码:Excel 类调试中引发的错误,如同在属性调用时引发一样,excel,excel-2000,vba,Excel,Excel 2000,Vba,不幸的是,我正在用Excel2000VBA开发一个应用程序。我相信我已经发现,在自定义类属性、函数或子类中出现的任何错误都会像在VBA代码中调用该属性的点上出现的错误一样进行调试。也就是说,VBE调试器不会将我带到类属性中发生错误的位置,而是第一次输入属性的位置(例如,从模块子模块或函数)这使得开发比最浅显的OOExcel2000VBA代码更令人沮丧,因为我必须逐行遍历每个类方法,以发现导致错误的指令 我是否遗漏了一些东西,或者这是我必须在Excel2000中处理的已知错误?这是在2003年还是
这个“功能”在Excel 2003中是相同的,如果在2007年有所不同,我会感到惊讶。对于Office 2003,当调试器被配置为在未处理的错误时中断(默认配置)时,您将得到这种行为 如果希望它在Err.Raise行中断,则需要将其配置为在所有错误时中断(工具/选项/常规/错误捕获/在所有错误时中断)
我相信Office 2000也一样,但没有副本可供检查。此页面是有关VBA中错误处理的非常好的资源:
这个“功能”听起来更像是鼓励购买VisualStudio的一种策略。唉。谢谢我认为微软已经故意忽略VBA大约10年了,而支持.Net等。他们只是没有得到VBA在日常业务中增加的价值。这是相同的功能。实际上是同一个代码。已经有十年了。似乎有太多的稳定性,谢谢!实际上,在三个选项中(全部中断、类中断和未处理错误中断),类中断是我想寻找的。你确定没有理由吗?据我所知,使用建议的设置,
Err.Raise
不能在类中使用。
'''''''''''''''
'In Module1:
Public Sub TestSub1()
Dim testClass As Class1
Dim testVariant As Variant
Set testClass = New Class1
testVariant = testClass.Property1 'Debugger takes me here...
End Sub
''''''''''''''
' In Class1
Property Get Property1() As Variant
Err.Raise 666, , "Excel 2000 VBA Sux!" 'But error is actually thrown here.
End Property