似乎当从单元格公式(即“用户定义函数”或UDF)调用VBA代码时,通常的VBA错误中断不起作用。
我找到唯一记录此行为的地方是一篇名为"Developing User-Defined Functions for Excel 2007 and Excel Services"的文章中的几行:
错误处理返回#VALUE错误。由UDF代码引发的所有异常都以#VALUE错误的形式返回到Excel工作表中。
即使将Error Trapping设置为“Break on All Errors”并逐步执行代码,您也永远看不到VBA运行时错误对话框——Excel会在不告诉您出了什么问题的情况下悄悄地放弃执行。这当然比必要的调试更加困难。
虽然有一些可能的解决方法涉及On Error
,但我不想为了找出错误的来源而使我的代码变得混乱。
是否有一些我忽略的Excel/VBA选项可以使Break On Error正常工作? 我正在使用Excel 2003。
当从单元格调用时,进入调试器的唯一方法是设置断点或使用Stop
语句。