Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在执行Excel自动打开宏之前调试它?_Excel_Vba_Debugging - Fatal编程技术网

如何在执行Excel自动打开宏之前调试它?

如何在执行Excel自动打开宏之前调试它?,excel,vba,debugging,Excel,Vba,Debugging,我被要求修复宏无法正常工作的Excel工作簿。工作簿包含一个自动打开宏,用于更改内容,包括隐藏或删除工作表。一旦运行完,第二次运行总是会崩溃,因为它试图选择以前删除的工作表 我想一步一步地完成自动打开,但问题是: 如果打开工作簿并选择禁用宏,则无法查看宏。 如果我打开工作簿并选择不禁用宏,则在可以停止它之前自动打开运行 如何在自动打开第一次运行时单步执行?完整答案线索在注释中 禁用宏后,可以编辑或调试宏,但您需要使用Microsoft Excel对象展开树状视图中的右键单击上下文菜单将代码加载到

我被要求修复宏无法正常工作的Excel工作簿。工作簿包含一个自动打开宏,用于更改内容,包括隐藏或删除工作表。一旦运行完,第二次运行总是会崩溃,因为它试图选择以前删除的工作表

我想一步一步地完成自动打开,但问题是:
如果打开工作簿并选择禁用宏,则无法查看宏。
如果我打开工作簿并选择不禁用宏,则在可以停止它之前自动打开运行


如何在自动打开第一次运行时单步执行?

完整答案线索在注释中

禁用宏后,可以编辑或调试宏,但您需要使用Microsoft Excel对象展开树状视图中的右键单击上下文菜单将代码加载到“编辑”面板中(单击一次即可显示空面板)


我将“Stop”作为自动打开宏中的第一个命令,并保存了工作簿。在重新打开工作簿时,我可以选择启用宏并让Auto Open运行,然后直接跳入调试器,在第一次运行时逐步执行。

查看
Debug.Assert False

您只需将其作为自动打开子例程中的第一行插入即可


Debug.Assert Condition
将停止代码并提示调试,如果
Condition=False

禁用宏不应阻止您查看宏。我同意。如果我禁用了宏并试图查看宏,我会看到“运行”或“进入”选项,以及“编辑”、“创建”、“删除”和“选项…”的禁用(灰显)选项。如果我选择“进入”,我会收到一条对话框消息,告诉我必须重新打开工作簿并选择启用宏。@BrianLowe按Alt+F11打开VB编辑器。即使宏被禁用,您也应该可以看到它们。单击VBAProject+加号可查看工作表和模块。
Workbook\u Open
将在此工作簿中的Microsoft Excel对象下。双击它,它将在编辑器的右侧显示该方法。如果这不起作用,您将在右侧窗格中找到两个
下拉列表。。在第一个下拉列表中选择工作簿,并在第二个下拉列表中打开