与之前的线程*类似,当我在Excel 2016中进入VBA子进程然后进入语句时:
Workbooks.Open文件名:=“C:\ file2”
该文件打开正常,但返回时,子的其余部分只执行到最后(我失去了步入模式) .
我在64位计算机上运行Windows 10,在32位版本的Office professional Plus 2016上运行
*相同的问题在以下链接中描述:Excel 2013 VBA Workbooks.Open Loses Debug Step Mode?但'ideal'解决方案是在workbooks.open行之后添加断点 . 这在Excel 2016中不起作用 - 例程停止但在第一次按F8时例程完成结束 .
这里描述了同样的问题:
http://blog.contextures.com/archives/2014/09/04/excel-vba-problem-with-step-into-f8/但解决方案(需要更改注册表)适用于早期版本的Excel,不适用于Windows 10 / Office 2016 .
这是阻止有效调试的令人沮丧的问题 . Microsoft Pro支持已将我引导至Excel论坛 . 所以我们在这里.. :)
任何想法热烈欢迎 .
1 回答
我已经遇到了你所描述的问题,对我来说,以下是有效的:
1)而不是
Workbooks.Open Filename:= "C:\file2"
使用变量,例如:这允许您在打开文件的行之前和之后放置断点,这样您就可以再次单步执行代码 . 's something about doing file input/output lines that causes Excel macros to just run the code rather than stepping after those lines. Also, assigning variable is a good practice since it allows you to troubleshoot problems in the code. But be aware that with several workbooks open you need to keep track of which is which -- so it'也是一个好主意,可以将变量赋给
ThisWorkbook
(代码所在的那个) . 最后,如果您使用上面显示的ActiveSheet
并且您正在调试中,那么无论哪个工作表处于活动状态都将是ActiveSheet
- 这可能会令人困惑 . 如果您有疑问,请告诉我 .