首页 文章

Excel 2016 VBA工作簿 . 打开失去调试步骤模式..重新访问

提问于
浏览
0

与之前的线程*类似,当我在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 回答

  • 0

    我已经遇到了你所描述的问题,对我来说,以下是有效的:

    1)而不是 Workbooks.Open Filename:= "C:\file2" 使用变量,例如:

    Dim wk as Workbook, sh as worksheet, path as string
    path = "C:\file2"
    Set wk = Workbooks.Open(path)
    Set sh = ActiveSheet
    'etc...
    

    这允许您在打开文件的行之前和之后放置断点,这样您就可以再次单步执行代码 . '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 - 这可能会令人困惑 . 如果您有疑问,请告诉我 .

相关问题