28

如果我使用我的新 Excel 编写创建无限循环的代码,则 Ctrl + Break 不再起作用。Esc 键等也没有。

我浏览了整个网络,似乎微软有一个错误并且不想修复它。

有没有办法将 Ctrl + Break 功能重新引入 VBA,所以如果将来发生这种情况,我不会失去工作/强制关闭?

4

8 回答 8

56

Alt + Esc。按住键直到它断开。

从 Windows 7 开始,这将在所有打开的窗口中循环。别介意,继续挤。

于 2014-03-12T20:18:16.153 回答
12

至少在 Office 2013 上,Ctrl+Scroll Lock 可以做到这一点。我不需要更改任何设置或启用任何东西。

(公然插件:我的博客文章链接到此信息的原始来源:))

于 2016-08-03T14:25:04.977 回答
7

减轻这种非常烦人的行为的一种方法是包括

DoEvents

在循环。它不必每次迭代都执行,只要定期调用它,Ctrl Break 仍然可以工作。

注意:我通常在调试代码后删除它,以避免任何性能影响

于 2014-02-13T05:48:30.920 回答
6

对于那些尝试了之前提出的解决方案无济于事的人,试试这个。它对我有用(windows8,Excel 2016)

在 VBA 代码窗口上,左键单击并按住(就像您要拖动该窗口一样),同时按住 Alt+ESC 键。它破坏了执行并问我是否要继续,或者调试......我当然选择了调试。

于 2018-07-18T15:31:35.643 回答
1

如果它可以帮助任何人,那么在宏未运行时按 Ctrl+break 仅在您在开发人员之外执行此操作时才有效。

于 2016-10-26T16:07:17.443 回答
0

另一种方法是在循环中故意引入错误。比如说你的循环不应该运行超过 1000 次:

Function XYZ()
do while(..)
errcnt = errcnt + 1

if errcnt > 1000 then
  cells.find(what:="Chunk Norris").activate
exit function
endif

loop
end function

它会产生错误并“破坏”代码

于 2014-02-12T20:06:12.997 回答
0

我可怜的键盘上没有“中断”按钮。我唯一的选择是按 X 关闭程序或 alt+F4。我也必须编写一些代码。

于 2020-11-26T00:22:24.040 回答
0

如果您处于设计模式,则中断(Ctrl + Break)在 VBA 编辑器中也不可用。在这种情况下,您可以按方形停止图标右侧的设计模式图标。这会将编辑器带回常规模式,然后 break 选项变为可用。

于 2019-12-02T12:21:19.690 回答