当您在Excel中运行宏时,该程序将全神贯注于完成宏。 (听起来几乎是拟人化的,不是吗?)这意味着,如果宏对数据进行了大量繁重的处理,则好像您的系统在处理宏的过程中已经“锁定”了。

不过请放心,宏处理只会影响Excel。

您可以打开另一个应用程序并在其中运行,同时宏在后台在Excel中分块。当然,您的系统对宏的关注可能会减慢其他程序的响应,但这取决于您在系统上使用的Windows版本。原因?资源共享需要一个称为_multitasking的过程。_不同版本的Windows以不同的方式处理多任务。

您可能想知道当程序忙于运行宏时如何在Excel中完成其他工作。简便—只需打开另一个Excel实例(从“开始”菜单再次运行它)并执行其他工作即可。您需要做的就是确保您不要尝试使用Excel的第一个实例中的宏使用的同一工作簿(或多个工作簿)。

另一种工作方式是修改宏。

如果您的宏长时间运行,则很有可能是因为它执行了某种类型的循环。通过在循环内添加DoEvents命令,宏将暂时中止执行,并将控制权交还给用户的进程。因此,如果您按下键,单击鼠标或开始键入内容,DoEvents就会注意到并执行需要执行的所有任务来处理您想要完成的事情。

服务完所有用户输入后,宏将继续愉快地运行。

添加DoEvents会稍微降低宏的速度,但确实可以让您继续工作。 (了解Excel仍然会很慢;您的宏确实会占用资源来运行。)添加DoEvents还可以提供一种机会,以受控方式脱离宏(使用Ctrl + Break)。

但是请记住,您只能通过测试(以及更多测试)来找出最适合您的情况的方法。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

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

本技巧(8971)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: