Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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 2016 VBA工作簿。打开调试步骤模式。。重游_Excel_Vba_Debugging_Office 2016 - Fatal编程技术网

Excel 2016 VBA工作簿。打开调试步骤模式。。重游

Excel 2016 VBA工作簿。打开调试步骤模式。。重游,excel,vba,debugging,office-2016,Excel,Vba,Debugging,Office 2016,与上一个线程*类似,当我在Excel 2016中进入VBA子线程,然后进入语句: 工作簿。打开的文件名:=“C:\file2” 文件打开正常,但返回时,子文件的其余部分将执行到底(我在模式中失去了步骤) 我在64位机器上运行Windows 10,以及Office professional Plus 2016的32位版本 *以下链接中描述了相同的问题: 但“理想”的解决方案是在workbooks.open行之后添加断点。这在Excel 2016中不起作用-例程停止,但在第一次按F8键时例程完成并结

与上一个线程*类似,当我在Excel 2016中进入VBA子线程,然后进入语句:

工作簿。打开的文件名:=“C:\file2”

文件打开正常,但返回时,子文件的其余部分将执行到底(我在模式中失去了步骤)

我在64位机器上运行Windows 10,以及Office professional Plus 2016的32位版本

*以下链接中描述了相同的问题: 但“理想”的解决方案是在workbooks.open行之后添加断点。这在Excel 2016中不起作用-例程停止,但在第一次按F8键时例程完成并结束

此处描述了相同的问题:

但该解决方案(需要更改注册表)适用于早期版本的Excel,不适用于Windows 10/Office 2016

这是一个阻碍有效调试的令人沮丧的问题。Microsoft Pro支持人员已将我引向Excel论坛。所以我们到了……)


欢迎提出任何解决方法。

我遇到了您描述的问题,以下方法对我有效:

1) 不要使用
工作簿。打开文件名:=“C:\file2”
使用以下变量:

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

这允许您在打开文件的行之前和之后放置断点,这样您可以再次单步执行代码。执行文件输入/输出行会导致Excel宏只运行代码,而不是在这些行之后单步执行。另外,分配变量是一种很好的做法,因为它允许您解决代码中的问题。但是请注意,打开多个工作簿时,您需要跟踪哪个是哪个——因此,为
ThisWorkbook
(代码所在的工作簿)分配一个变量也是一个好主意。最后,如果您使用我上面介绍的
ActiveSheet
,并且您正在调试中,那么无论哪个工作表处于活动状态,都将是
ActiveSheet
——这可能会让人困惑。如果您有任何问题,请告诉我。

我遇到了您描述的问题,以下几点对我有效:

1) 不要使用
工作簿。打开文件名:=“C:\file2”
使用以下变量:

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

这允许您在打开文件的行之前和之后放置断点,这样您可以再次单步执行代码。执行文件输入/输出行会导致Excel宏只运行代码,而不是在这些行之后单步执行。另外,分配变量是一种很好的做法,因为它允许您解决代码中的问题。但是请注意,打开多个工作簿时,您需要跟踪哪个是哪个——因此,为
ThisWorkbook
(代码所在的工作簿)分配一个变量也是一个好主意。最后,如果您使用我上面介绍的
ActiveSheet
,并且您正在调试中,那么无论哪个工作表处于活动状态,都将是
ActiveSheet
——这可能会让人困惑。如果您有问题,请告诉我。

我遇到了这个问题。VBA“宏”子模块单独在Excel中正常工作,但如果从Access调用,例程将跳过Excel VBA的重要部分,整个过程将失败。 我在Excel中创建了一个新的代码模块,在该模块中粘贴了完全相同的vba代码,但给了子模块一个新名称


然后,我从Access调用了该例程,但使用了新的Excel VBA子名称,它运行良好。不知何故,旧模块损坏了。

我遇到了这个问题。VBA“宏”子模块单独在Excel中正常工作,但如果从Access调用,例程将跳过Excel VBA的重要部分,整个过程将失败。 我在Excel中创建了一个新的代码模块,在该模块中粘贴了完全相同的vba代码,但给了子模块一个新名称


然后,我从Access调用了该例程,但使用了新的Excel VBA子名称,它运行良好。不知何故,我认为旧模块已损坏。

假设在打开后停止不起作用,如果中断不起作用?您确定脚本将完成到底吗?可能是因为它发出了一条信息?将MsgBox放在后续部分以确认其运行到底如何?假设在打开后停止不起作用,如果中断不起作用?您确定脚本将完成到底吗?可能是因为它发出了一条信息?将MsgBox放在后续部分以确认其运行到底如何?在工作簿之后添加断点(以及
stop
作为替代方法)。open行确实有效-我正在测试它的完整代码(我说得相当尴尬)有一个
Do循环
,其中有另一个工作簿。打开行,导致代码再次跑掉。感谢在workbook.open行成功后添加断点(以及
stop
),我测试它的完整代码(我说得很不好意思)中有一个
Do循环,其中有另一个工作簿。open行导致代码再次跑掉。ThanksI也有这个问题,SaveAs和Open都有,对我有效的修复方法也很相似。从有问题的模块中保存源代码、删除模块、保存文件、退出、重新打开文件、重新创建模块(保持相同的名称正常)、将文本粘贴回、重新编译、保存、退出。当我返回时,断点模式工作正常。所以,是的,几乎可以肯定是一种腐败——可能是在我昨天的网络问题之后。我也有这个问题,SaveAs和Open都有,对我有效的修复方法是类似的。从有问题的模块中保存源代码、删除模块、保存文件、退出、重新打开文件、重新创建模块(保持相同的名称正常)、将文本粘贴回、重新编译、保存、退出。当我返回时,断点模式工作正常。所以,是的,几乎可以肯定是腐败——可能是因为我昨天的网络问题。