Excel调试模式失败

时间:2013-12-04 16:01:49

标签: excel vba debugging mode

我有一个适用于各个部门的工作簿系统,每个部门都有auto_open宏。我还有一个控制工作簿,可以根据需要运行自己的宏来打开系统中的每本书并收集信息。它通常很有效。

但是,当调试中央工作簿中的宏变得必要时,单步执行命令以使用auto_open打开任何支持书籍将颠覆调试器并导致其余代码执行,就像F5键已经执行一样按压。

我查找了一个调试设置来防止这种情况,以及任何可能在没有运气的情况下改变此行为的“Open”方法参数。谷歌的搜索也毫无结果。有没有办法告诉Excel调试器在这种情况下维护程序控制?帮助我stackoverflow,你是我唯一的希望。

1 个答案:

答案 0 :(得分:1)

正如我们所观察到的,Workbooks.Open方法不会触发Auto_Open事件,因此在打开新工作簿后,在“控制”工作簿中放置断点将不允许您输入您可能需要执行和调试代码。

一种解决方法是插入一行代码,其中包含一个手动调用Auto_Open过程的断点。这应该允许您调试打开的书籍的每个中的代码:

Sub test()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\path_to\your_file.xlsm")

Application.Run wb.Name & "!Auto_Open" '// PUT BREAKPOINT HERE!

End Sub

或者,按照建议HERE,将Auto_Open事件中的代码移植到Workbook_Open事件。

我应该早点考虑到这一点......我只使用过Auto_Open和XLA / XLAM加载项文件,而不是Workbook_Open事件应该足够的普通工作簿文件。