通常创建宏来处理数据,并且处理数据通常会花费很长时间。因此,即使宏正忙于分派其指定的任务,某些用户仍可能认为他们的计算机已停止响应。

对于大多数宏开发人员而言,解决方案是以某种方式提醒用户有关宏的进度。您可以通过两种方式在Excel中执行此操作。最简单,最常见的方法是使用状态栏指示宏在做什么。您所需要做的就是将包含状态消息的字符串放在一起,然后将该字符串分配给Application对象的StatusBar属性,如下所示:

sStatus = "Processing Input File - Please Be Patient"

Application.StatusBar = sStatus

该消息将保留在状态栏上,直到您用其他消息覆盖它为止。您还可以通过提供完整的百分比来指示循环中的进度:

For x = 1 to y     Application.StatusBar = Format(x/y,"0.0%") & " Complete"

' Other coding here Next

例程结束后,使用以下语句使状态栏恢复正常:

Application.StatusBar = False

如果您希望为宏开发一个实际的进度指示器,可以通过创建一个用户窗体,然后更新该窗体以显示一个“百分比栏”或其他可视指示器来实现。您可以在以下地址找到此类进度指示器的示例:

https://www.excel-easy.com/vba/examples/progress-indicator.html

注意:

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

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

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