8

我写的一个宏(在另一台机器上)突然在我的电脑上表现得很奇怪。我在Excel 2010环境中编写了代码,并尝试在同一环境中逐步执行代码。

每次我这样做,几行之后,其余的代码就会立即执行。如果我设置断点,它将停止。有时,我可以在它再次自动执行之前多走几行。

是什么赋予了?我在网上没有找到答案……因此我在 Stackoverflow 上发表了第一篇文章。

感谢您的任何提示!这让我的生活变得困难。

更新:我现在已经回到原来的编程环境,单步执行代码没有问题。所以它一定是我的Excel设置中的东西!我无法弄清楚它可能是什么。

4

8 回答 8

5

既然你一开始提到 F8 按钮按预期工作,我的大部分想法都从桌子上清除了。
我无法解释这一点,但也许我可以提供一个临时的“解决方法”,这是我能做的最好的。
您可以通过单击每一行然后应用 CTRL+F8(运行到光标)来模拟 F8。光标将充当断点,它比在每一行放置/删除断点更麻烦。
它需要更多的手工操作,但速度一样快(至少在普通桌面上)。希望它至少可以减少您在调试时的一些挫败感!

于 2012-07-20T08:54:18.893 回答
5

我发现这里引用了这个解决方案。解决方案是对注册表进行更改(取自源):

注册表更改会影响 RPC 调试,您可以在 Microsoft 网站上阅读更多相关信息:使用 RPC 调试调试 COM 客户端和服务器

1.关闭Excel

2.备份注册表文件,然后打开注册表——微软网站上有说明

3.转到适用的注册表项:

  • 对于 64 位窗口上的 32 位 Office,请转到注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VBA
  • 对于 32 位窗口上的 32 位 Office,请转到注册表项:KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA
  • 对于 64 位 Windows 上的 64 位 Office,请转到注册表项:KEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\VBA

4.右击右侧窗口,点击新建

5.单击 DWORD(在下面的屏幕截图中,DWORD 用于在 64 位计算机上运行的 32 位 Office)

6.将DWORD命名为DisableOrpcDebugging7

7.右键单击DWORD,然后单击修改

8. 将值更改为 1,然后单击确定。

9.完成的DWORD会出现在注册表中

10.关闭注册表,然后重新打开 Excel,F8 键现在应该可以正常工作,单步执行代码。

于 2015-12-30T17:10:53.700 回答
2

最后更新:事实证明,我在后台运行的另一个名为 KeyRocket 的应用程序旨在帮助您记住办公应用程序中的键盘快捷键,这是造成这种奇怪行为的原因。我希望这对其他人有帮助!

最后感谢大家的建议!

于 2012-07-23T08:43:10.637 回答
2

我有一个类似的问题,但关闭了 excel 并看到有一个EXCEL.EXE *32进程仍在运行,将其杀死,然后重新打开并再次运行宏。无法再现,宏按预期进行。

于 2014-07-22T22:18:32.800 回答
2

我遇到了同样的问题,但是在 Word(不是 Excel)2010 中。

我尝试了上面其他贡献者提到的各种事情,例如关闭其他可能使用 F8 键的程序,并关闭其他可能干扰的 MS Office 2010 应用程序,但是,问题顽固地存在:从我的 VBA 的某个点代码,代码的分步执行(F8键)被忽略,整个过程一次执行。

然后我用我的代码做了一些实验。因此我发现:在我的情况下,当我如下调用外部程序时,不想要的行为就出现了:

Application.Run MacroName:="OneProcedureOfMine"

为了规避这个问题,我像这样重写了代码:

Call OneProcedureOfMine

无论如何,这是更优雅的方式。它解决了这个问题。以这种方式调用从属程序,F8 整齐地通过主程序,并从其内部调用每个程序。

于 2015-08-09T01:13:51.507 回答
1

我通过做两件事成功解决了这些问题: 1. 如果您加载了多个键盘驱动程序,请删除您不使用的那个 2. 如果您的键盘有一个“F Lock”键(位于 F12 右侧我的键盘),请按它并重试。

于 2015-03-25T20:06:43.073 回答
1

我知道这是一个非常古老的线程,但我刚刚找到它。我检查了任务管理器,发现我有一个“卡住”的访问进程正在运行。我摆脱了它,现在一切正常。

于 2019-08-01T19:49:43.393 回答
1

我遇到了同样的问题。我创建了一个新模块并将我的代码粘贴到这个新模块中,它成功了!!如果有人面临同样的问题,希望它会有所帮助。

于 2021-08-25T11:42:21.480 回答