【问题标题】:excel VBA break execution when there's no break key on keyboard [closed]当键盘上没有中断键时,excel VBA中断执行[关闭]
【发布时间】:2012-04-24 06:14:48
【问题描述】:

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

这是一个糟糕的笑话吗?我不得不重新启动计算机;有没有更优雅的方式??

【问题讨论】:

  • Is this a bad joke? 不幸的是,它看起来像那样。它没有 BREAK 键 (google.co.in/imgres?imgurl=http://3.bp.blogspot.com/…) 你试过 Esc 吗?
  • @SiddharthRout:好的,谢谢你的链接!
  • 对读者的注意:有许多不同的解决方案是特定于计算机的。如果最重要的答案不起作用,请务必从列表中继续。就我而言,戴尔 Precision 的答案适用于我的笔记本电脑。

标签: vba excel keyboard


【解决方案1】:

只需按两次退出键 ;-)

【讨论】:

  • 我可以确认这不适用于我的 Lenovo T431。下面的项目会在应用程序之间进行循环。
  • @MauryMarkowitz,确保您在任何代码中都没有这样的内容可能是有益的 - Application.EnableCancelKey = xlDisabled
  • 嗯,我真的不知道该告诉你什么。您也许可以不用使用屏幕键盘。看到这篇文章 - windows.microsoft.com/en-us/windows/…
  • @BenStrombeck,屏幕键盘帮我做了。谢谢。
【解决方案2】:

解决方案 #1(大部分时间都有效): 当键盘上缺少某些特定键(PauseBreakScrLk) 并按 Esc 2、3或多次也不会停止宏。

步骤 #01:如果您的键盘没有特定的键,请不要担心,通过按 Win + U.

步骤 #02:现在,尝试以下任何选项,它们肯定会根据您的系统架构(即操作系统和 Office 版本)起作用

  • Ctrl + 暂停
  • Ctrl + ScrLk
  • Esc + Esc(连续按两次)

您将使用上述组合键进入中断模式,因为宏会在完成当前任务后立即暂停执行。例如。如果它正在从网络中提取数据,那么它将在执行任何下一个命令之前立即停止,但在提取数据之后,可以按 F5F8 继续调试。


当解决方案 #1 不起作用或您需要永久解决方案时,请尝试向注册表添加新 KEY。 (我在戴尔 3530 Inspiron 笔记本电脑上运行 Win 10 Creators Update)

免责声明:请您自行承担更改 Windows 注册表的风险,并且仅当您是 Windows 管理员或有更改键值的经验时才建议这样做在注册表中。

您也可以寻找使用辅助键盘 Win + U

的解决方案 #2

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

2) 探索注册表,扩展每个元素 HKEY_LOCAL_MACHINE -系统 -电流控制集 - 控制 - 键盘布局

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

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

要详细了解它并根据您的需要定制它,请参考此链接:KeyBoard Scancodes

【讨论】:

  • 屏幕键盘和 CTRL + 暂停在 HP EliteBook 上为我工作。谢谢(3 年后)!
【解决方案3】:

我有一个没有 Pause/Break 键的 Dell Precision,但有一个替代键:Fn + B,所以:

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

可以执行命令:

dir /s C:\

并在 dir 列出驱动器 C 中的所有文件时测试 Pause 和 Break 组合键。

reference

【讨论】:

  • 我的戴尔需要 ctrl-fn-b。该线程上的其他解决方案均无效。非常感谢您的回答!
  • Fn + B 在我的联想 T580 上完美运行!
【解决方案4】:

尽管这是一个老问题,但我刚刚遇到了同样的问题,发现Ctrl+Scroll lock 可以作为休息时间。

“滚动锁定”可以在我的戴尔笔记本电脑上通过蓝色功能键“Fn”和“F6”键访问,该键上有一个带有⇳符号的蓝色小锁符号。在其他计算机上,它可能看起来像 ⤓ 。所以我按 Ctrl+Fn+F6 非常有效。

【讨论】:

  • 较新的戴尔笔记本电脑 - 我的笔记本电脑是 F3,并且有一个锁定图标。谢谢!
【解决方案5】:

我有一台惠普笔记本电脑,当我想在 msgbox 之后中断时,这可以工作,按住 fn+ctrl 并单击右 shift 键(也有暂停)然后响应 msgbox 并且代码将中断。

【讨论】:

  • 有人投了反对票。我投了赞成票,再次回到 0 :-) 在 MsgBox 上时中断。我可以确认这适用于 HP ProBook。我花了很长时间才找到这个,完全错过了 shift 键上的 [pause] 文本。谢谢鲍勃
  • 这在 HP EliteBook 上不起作用...我不得不退出 DropBox,显然它在该组合键上有截屏功能。
【解决方案6】:

至少在我的戴尔上:ctrl + alt + esc 在光标开始循环之前

我在这个网站上从 aidangrogan 那里得到了这个信息:

http://en.community.dell.com/support-forums/laptop/f/3518/t/19355018

所以我并没有声称自己找到了它。他(或她)的所有功劳

【讨论】:

    【解决方案7】:

    按住 CTRL+Fn 并点击 Shift - 停止我的宏运行。我的 HP Pavilion G7 键盘上也没有“Break”键。

    【讨论】:

      【解决方案8】:

      Ctrl + Fn + B 适用于我的 Dell Latitude 5480 上的 Excel 365 (Office 365)(没有 Break kbd> 键)。

      【讨论】:

        【解决方案9】:

        我找到了这个帖子并看到了得票最多的解决方案,但后来意识到我的笔记本电脑没有 PauseBreakScrLk) 键。我尝试了其他建议的解决方案,例如“屏幕键盘”或替代键组合,但这些也不起作用。

        然后它打动了我:如果它是与特定代码行相关联的幻象断点,为什么不直接删除该行?

        这就是我所做的:

        1. 我切断了执行中断的行。
        2. 再次运行宏(这次没有中断)
        3. 再次粘贴了行。

        当没有其他组合键(屏幕上或物理)起作用时,它对我有用。希望它可以帮助某人!

        【讨论】:

          【解决方案10】:

          以上答案都不适合我。

          我怎么找到this,这并不完美,因为您需要按住 ALT 然后按两次键。最重要的是,这取决于您的 Excel 设置的语言。

          在英语 Excel 中,您需要使用 ALT + R + R 在德语中,您需要使用 ALT + U + R

          【讨论】:

            【解决方案11】:

            我有一个日文布局键盘。我的笔记本电脑联想 E470 上既没有滚动锁定也没有中断。 长按 Esc 键对我来说是一个终止符。

            【讨论】:

              【解决方案12】:

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

              【讨论】:

              • 您究竟是如何打开另一个 Excel 实例的? Windows 不会让我这样做,每当我这样做时,它只会将现有实例带到前台。我都在开始菜单中右键单击 Excel 并尝试打开另一个工作簿,并尝试在任务栏中右键单击并单击 Excel。
              • @JayImerman,要打开另一个 Excel 实例或任何其他应用程序,请单击(左)Alt +(左)Shift + 应用程序按钮。例如,我将 Excel 固定到任务栏并打开一个新实例,我单击任务栏上的 Alt + Shift + Excel 图标。要补充一点,您不能在两个不同的 Excel 实例之间复制粘贴 Excel 方式。如果您从一个实例复制并尝试粘贴到另一个实例中,您将无法获得所有 Excel 粘贴选项。同样,您不能在两个不同的 Excel 实例中打开的文件之间引用公式。对于这样的工作,文件应该在同一个实例中打开。
              【解决方案13】:

              因为上述所有内容都不适用于我的应用程序,所以我最终编写了一个可以从终端运行的 VBS 脚本。不优雅。如果其他一个工作,可能不是第一选择。但是,有效。

              break.vbs

              Set WshShell = WScript.CreateObject("WScript.Shell")
              WshShell.SendKeys "^%{BREAK}"
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-07-11
                • 2017-06-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-04-26
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多