当键盘上没有Break键时,如何在Excel VBA中终止执行?

25

我刚刚注意到我的笔记本电脑(Dell XPS 15z)上没有BREAK键(没有专用数字键盘)。我正在逐步运行调试器,然后当一切看起来都很好时,我就让它自动运行。然而,它在无限循环中运行,现在我意识到没有办法停止它,因为没有break键!!!

这是个坏玩笑吗?我不得不重新启动电脑; 有更优雅的方法吗?


相关内容:https://superuser.com/questions/12525/pause-break-key-on-modern-keyboards - Ciro Santilli OurBigBook.com
读者注意:有许多不同的解决方案是针对特定计算机的。如果前几个答案不起作用,请确保继续查看列表。在我的情况下,Dell Precision的答案适用于我的笔记本电脑。 - Phil Freihofner
13个回答

23

只需按两次 ESC 键即可 ;-)


1
我可以确认这在我的联想T431上不起作用。而且下面的项目会在应用之间循环切换。 - Maury Markowitz
@MauryMarkowitz,确保您的代码中没有类似这样的内容可能会有益 - Application.EnableCancelKey = xlDisabled。 - Ben Strombeck
1
嗯,我不是很确定该怎么告诉你。您可以尝试使用屏幕键盘。请参阅此文章 - http://windows.microsoft.com/zh-cn/windows/type-without-keyboard#type-without-keyboard=windows-7 - Ben Strombeck
@BenStrombeck,屏幕键盘为我解决了这个问题。谢谢。 - 0xbe5077ed

9
解决方案#1(大多数情况下有效): 当键盘上缺少某些特定键(PauseBreakScrLk),并且按Esc 2、3或多次无法停止宏时。 步骤 #01:如果您的键盘没有特定的键,请不要担心,并通过按Win + U打开Windows实用程序中的“屏幕键盘”。 步骤 #02:现在,请尝试以下任何一种选项,其中一种选项肯定会起作用,具体取决于您的系统架构,即操作系统和Office版本
  • Ctrl + Pause
  • Ctrl + ScrLk
  • Esc + Esc(连续按两次)

使用以上组合键将进入中断模式,因为宏立即暂停执行当前任务。例如,如果正在从Web拉取数据,则将在执行任何下一个命令之前立即停止,但在拉取数据后,可以按F5F8继续调试。


当解决方案#1无效或您需要永久解决方案时,请尝试向注册表添加新的KEY。(我在Dell 3530 Inspiron Laptop上运行Win 10 Creators Update)

免责声明:请自行承担更改Windows注册表的风险,建议仅在您是Windows管理员或具有更改注册表中键值的先前经验的情况下进行。

您还可以查找使用辅助功能键盘Win + U的解决方案#2

解决方案#2: 1)点击“开始”,然后在搜索框中输入REGEDIT。这将启动注册表编辑器。

2)浏览注册表,展开每个元素 HKEY_LOCAL_MACHINE -SYSTEM -Current Control Set - Control - Keyboard Layout

单击Scancode Map,然后编辑键值以匹配下面显示的键值。 即具有以下值:00,00,00,00,00,00,00,00,02,00,00,00,46,e0,44,00,00,00,00,00

完成后,您需要重新启动笔记本电脑,但之后,您可以将其用作暂停/ Break键。

要了解详细信息并根据您的需求进行自定义,请参阅此链接:键盘扫描码


1
在我的HP EliteBook上,屏幕键盘和CTRL + Pause键都可以使用。感谢您(三年后)! - Chase
<kbd>Ctrl</kbd> + <kbd>Win</kbd> + <kbd>O</kbd> 可以打开“屏幕键盘”,至少在 Windows 11 中是这样的... - FaneDuru

8
我有一台没有暂停/中断键的Dell Precision,但是有一个替代方法: Fn + B,所以:

- Fn + B == Pause (暂停执行);
- Ctrl + Fn + B == Break (中断执行);
- Win + Fn + B == Windows + Pause (打开系统属性).

你可以执行以下命令:

dir /s C:\

当 dir 列出 C 盘中的所有文件时,请测试暂停和中断组合键。

参考


我的戴尔需要按Ctrl-Fn-B才能生效。这个帖子上的其他解决方案都不管用。非常感谢你的答案! - Phil Freihofner
Fn + B 在我的 Lenovo T580 上完美地工作了! - musbach

5
尽管这是一个老问题,但我刚遇到了同样的问题,并发现 Ctrl+Scroll lock 可以起到断开作用。
在我的戴尔笔记本电脑上,可以通过蓝色功能键 "Fn" 和带有小蓝锁符号和 ⇳ 符号的 "F6" 键来访问 "Scroll lock"。在其他计算机上,它可能看起来像 ⤓。因此,我有效地按下 Ctrl+Fn+F6。

较新的戴尔笔记本电脑 - 在我的电脑上是 F3,并带有一个锁定图标。谢谢! - Julie

3

我有一台惠普笔记本电脑,当我想要在msgbox后暂停时,可以按住fn+ctrl并点击右shift键(上面有暂停键),然后回应msgbox,代码将会暂停。


有人投了反对票。我投了赞成票,又回到了0 :-) 在MsgBox上中断。我可以确认这在HP ProBook上有效。我花了很长时间才找到这个,完全错过了Shift键上的[pause]文本。谢谢Bob。 - hennep
这在惠普EliteBook上不起作用...我不得不退出DropBox,显然它在那个键组合上有一个截屏功能。 - Jay Imerman

2

1

我找到了一个解决方法,打开了另一个Excel实例和另一个电子表格,然后从那里打开了VBA编辑器,它显示为“运行”,所以我可以点击停止按钮。


你是如何打开另一个Excel实例的?Windows不允许我这样做,每当我尝试时它只会将现有实例带到前台。我尝试了在开始菜单中右键单击Excel并尝试打开另一个工作簿,还尝试在任务栏中右键单击并单击Excel。 - Jay Imerman
@JayImerman,要打开另一个Excel或任何其他应用程序实例,请单击(左)Alt + (左)Shift + 应用程序按钮。例如,我将Excel固定到任务栏上,并且要打开一个新实例,我会单击任务栏上的Alt + Shift + Excel图标。 需要注意不能在两个不同的Excel实例之间复制粘贴Excel方式...如果您从一个实例中复制并尝试在另一个实例中粘贴,则无法获得所有Excel粘贴选项。同样,您无法在两个不同的Excel实例中打开的文件之间引用公式。对于这种工作,应在同一个实例中打开文件。 - Uttam

1

Ctrl + Fn + B 可以在我的 Dell Latitude 5480(没有 Break 键)上使用 Excel 365(Office 365)。


1
我发现了这个帖子并看到了得票最多的解决方案,但后来意识到我的笔记本没有 PauseBreakScrLk) 键。我尝试了其他提出的解决方案,如“屏幕键盘”或替代按键组合,但这些都没有起作用。 然后我想到:如果是与特定代码行相关联的虚拟断点,为什么不只是删除那一行呢? 所以我就这样做了:
  1. 我切掉了断点处的代码行。
  2. 再次运行宏(这次没有断点)。
  3. 再粘贴回那一行代码。
对于我来说,这比其他任何键盘组合(屏幕或物理)都有效。希望能对某人有所帮助!

1
按住CTRL+Fn并按下Shift - 停止了我的宏。我的HP Pavilion G7键盘上也没有“Break”键。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接