Exceldebugging模式失败

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

但是,当debugging中央工作簿中的macros成为必要时,踩入命令以打开任何支持书籍的auto_open将颠覆debugging器,并导致其余的代码执行,如果F5键已被按下。

我查找了一个debugging设置来防止这一点,以及任何“打开”的方法参数,可能会改变这种行为,没有运气。 谷歌search也没有结果。 有什么办法可以告诉Exceldebugging器在这种情况下维护程序控制吗? 帮助我stackoverflow,你是我唯一的希望。

正如我们所看到的, Workbooks.Open方法不会触发Auto_Open事件,所以在打开新工作簿之后在“控制”工作簿中放置一个断点将不会允许您input和debugging代码,因为您可能需要执行该操作。

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

 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 

或者 ,如同在这里build议的那样,将代码从Auto_Open事件移到Workbook_Open事件。

我应该早点想到…我曾经只用过XLA / XLAM加载项文件的Auto_Open ,从来没有使用Workbook_Open事件的普通工作簿文件。