Excel调试模式失败
我有一套适用于各个部门的工作簿系统,每个部门都有自动打开的宏。我还有一个控制工作簿,可以根据需要运行自己的宏来打开系统中的每本书并收集信息。它通常工作得很好 但是,当需要调试中央工作簿中的宏时,单步执行命令以自动打开方式打开任何支持书籍将破坏调试器,并导致剩余代码像按F5键一样执行Excel调试模式失败,excel,vba,debugging,mode,Excel,Vba,Debugging,Mode,我有一套适用于各个部门的工作簿系统,每个部门都有自动打开的宏。我还有一个控制工作簿,可以根据需要运行自己的宏来打开系统中的每本书并收集信息。它通常工作得很好 但是,当需要调试中央工作簿中的宏时,单步执行命令以自动打开方式打开任何支持书籍将破坏调试器,并导致剩余代码像按F5键一样执行 我寻找了一个调试设置来防止这种情况,以及任何“打开”的方法参数,这些参数可能会在没有运气的情况下改变这种行为。谷歌搜索也毫无结果。在这种情况下,有没有办法告诉Excel调试器维护程序控制?帮助我stackoverfl
我寻找了一个调试设置来防止这种情况,以及任何“打开”的方法参数,这些参数可能会在没有运气的情况下改变这种行为。谷歌搜索也毫无结果。在这种情况下,有没有办法告诉Excel调试器维护程序控制?帮助我stackoverflow,你是我唯一的希望。正如我们所观察到的,
工作簿.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
或者,按照建议,将代码从自动打开
事件移植到工作簿打开
事件
我早该想到的。。。我只在XLA/XLAM加载项文件中使用过
Auto\u Open
,从未在普通工作簿文件中使用过workbook\u Open
事件 尝试此操作时,Workbooks.Open
方法将打开一个文件,但不会触发Auto\u Open()
子例程。您试图在哪个工作簿中调试代码?如果它是“控制”工作簿,只需在工作簿.Open
调用后放置一个断点,以允许您继续调试。David,运行时,工作簿将打开,并且不会触发自动打开,这是正确的。这使得调试行为对我来说更为特殊。如果我确信错误仅限于控制工作簿,则在Open语句之后暂停可以解决我的问题。我担心两者之间的一些交互可能会导致问题,理想情况下,我希望在两个工作簿中逐步完成代码。对。。。好吧,我有个主意。。。我将发布一个简短的回答。不完美,但我认为它会解决你的迫切需要。你有机会尝试这个答案吗??