当Brian处理多个工作簿中的任何一个时,Excel经常发出“不响应”消息。他想知道诊断和纠正此类问题的最佳方法。

您可以检查很多事情,但是这里没有重复发明,而是简单地提供一些指向有用信息的指针。检查的最佳位置实际上可能是Microsoft知识库。那里有两篇文章会有所帮助。您要查看的第一篇文章是:

https://support.microsoft.com/en-gb/kb/2758592

本文主要关注工作簿外部的元素,每个元素都可能影响Excel处理数据的方式。如果您认为问题可能出在工作簿中的内容(数据本身,数据的格式以及其他对象)上,那么您可以参考本文:

https://support.microsoft.com/en-us/kb/2735548

当然,问题可能根本与您的数据或外部元素无关。如果在运行宏时出现“无响应”消息,则可能是因为宏本身。如果真是这样,您将需要利用调试技能,并弄清楚宏中是否存在导致其陷入无限循环的逻辑错误。 (什么是无限循环?永远不会重复执行一系列步骤,因为永远不会遇到会终止重复的条件。)如果是这种情况,则需要更改宏以确保无限循环条件不会发生。不会发生。

当然,您的宏可能会尽力而为,并且需要很长时间。在这种情况下,Excel似乎会“关闭”前台处理(您在工作簿中看到的内容),直到在后台运行的宏完成为止。

缓解这种情况的一种方法是在您的宏代码中放置一个DoEvents命令。这使VBA屏住呼吸并执行任何“事件”

它在忙于运行代码时已经建立起来,以至于忽略了其他所有内容。换句话说,这使VBA允许Excel“响应”,因此不会出现“未响应”消息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(13435)适用于Microsoft Excel 2007、2010、2013和2016。