2014-11-06 86 views
0

我有一个带有宏的excel文件。它用于我们的程序模板。程序打开这个文件,调用宏并将数据作为参数传递。问题是如何从应用程序调用该宏时调试此宏?例如,在Visual Studio中,我可以使用“附加到进程”,也许在VBA中有这样的内容?调试VBA宏

+0

您是否想知道如何使用Excel VBA调试器或如何设置您的测试环境来模拟Excel作为主要测试驱动程序的场景? – xmojmr 2014-11-06 07:56:49

回答

1

我有几种不同的方式来在Excel中执行调试,并且它们都不是完美的或非常复杂的。

  1. 在整个代码中使用debug.print打印到立即窗口以查看程序是如何执行的。这在两种情况下非常有用 - 如果您想一般性地看到程序执行的程度,或执行过程中的位置,或者您可以使用debug.print添加更多详细信息(如果程序正在获取专门捕捉某处,并且希望看到程序正在执行时发生了什么。
  2. 创建一个数组,在程序执行时将日志信息输入到数组中,并在程序执行完成时打印数组。这是不完美的,因为它在程序执行没有成功完成的情况下并不真正有用,但在您希望获得有关程序如何作为验尸一部分运行的一些统计数据的场景中非常有用。
  3. 添加代码打破该程序,以便您可以看到该程序在运行时如何执行。使用立即窗口检查程序中变量的值。

同样,这些都不是完美的。

+0

断点实际上是我需要的,但是当从程序调用的宏不起作用时。 – Gleb 2014-11-07 06:19:57

+0

是否可以在辅助电子表格的代码中添加断点?这将解决您的问题。或者是您无法访问由主程序打开的辅助电子表格的问题? – 2014-11-07 14:58:22

+0

程序与临时文件副本一起工作。所以,如果我在代码中放置一个断点,它将被忽略。 – Gleb 2014-11-10 09:03:14