按Esc时停止Excel宏执行将无效

ptp*_*son 34 excel vba excel-vba terminate

我在XP上运行excel 2007.

除了按下escape之外,有没有办法阻止宏在执行期间运行?通常,如果我认为我创建了一个infinate循环或以其他方式搞砸了一些东西我点击了逃逸它会抛出一个错误,但宏停止了.

这一次(我以前做过但不是很糟糕),我设置了一个msgbox进行快速调试.原来它必须循环大约6000次,这意味着我必须"OK"6000个消息框,这需要几分钟.在运行之前我没有保存(另一个错误)所以我无法打开任务管理器退出.

有没有另一种方法可以阻止宏的执行,以防我再次这样做?

Tom*_*lak 53

使用CRTL+ BREAK可以在任何时候暂停执行.您将进入中断模式,可以按下F5继续执行或F8在可视化调试器中逐步执行代码.

当然,这仅在没有打开消息框时才有效,因此如果您的VBA代码由于某种原因不断打开消息框,那么在适当的时候按键会变得有点棘手.

您甚至可以在运行时编辑大部分代码.

用于Debug.Print将消息打印到VBA编辑器中的立即窗口,这比使用起来更方便MsgBox.

使用断点Stop关键字自动停止有趣区域的执行.

您可以使用有条件Debug.Assert暂停执行.

  • Excel 在到达查找按键的位置之前不会停止。如果你有一个紧密的无限循环,它永远不会停止,直到你使用任务管理器杀死Excel,在这种情况下你将丢失任何未保存的内容。如果在循环中添加 DoEvents 语句,它将强制 Excel 处理按键等事件。(它也会减慢你的代码速度。) (3认同)

小智 16

CTRL + SCR LK(Scroll Lock)为我工作.


jai*_*ish 6

有时候,正确的设置键(Pause,BreakScrLk)不可用键盘上(主要是与笔记本电脑的用户情况),并按下Esc2,3次或多次不暂停宏太.

我也陷入困境,最终在Windows的辅助功能中找到了解决方案,之后我尝试了所有研究选项,其中3个在3种不同的场景中为我工作.

步骤#01:如果您的键盘没有特定的键,请不要担心,然后按Win+ 键从Windows Utilities打开"OnScreen键盘" U.

步骤#02:现在,尝试以下任何一个选项,它们肯定会起作用,具体取决于您的系统架构,即操作系统和Office版本

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

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