直到几年前(不记得Office/EXCEL的哪个版本),如果代码正在执行输入/输出,我才能够通过按CTRL来中断长时间运行(或无限循环) VBA代码。但这已经不再适用于EXCEL 2016了。运行以下代码:
Public Sub doit()
While 1 = 1
Debug.Print Now()
Wend
End Sub
运行一段时间,在“立即”窗口上打印(I/O)当前日期时间(此时可以中断),但几秒钟后EXCEL进入“未响应”模式,永远不会恢复(唯一的选择是结束程序;将数据/编码松散到最后一个Autorecover点)。
有人知道为什么吗?如果有一种方法在没有响应模式的情况下破坏代码呢?在代码中洒洒DoEvents是保证我们可以破坏的唯一方法吗?
这是32位EXCEL。
发布于 2022-01-18 05:16:23
这个问题的答案是:
Control Break out of Infinite Loop In 2010 (2013) Excel VBA Alt(尽管它通过所有打开的窗口切换)最终打破了它,使我们能够节省工作。
不知何故,我在搜索时漏掉了那条线;对不起!
https://stackoverflow.com/questions/70740974
复制相似问题