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

对于大多数宏开发人员而言,解决方案是以某种方式提醒用户有关宏的进度。您可以通过两种方式在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

如果您希望为宏开发一个实际的进度指示器,则可以通过创建一个用户窗体,然后更新该窗体以显示一个“百分比栏”或其他某种可视指示器来实现。大多数希望使用这种进度指示器的人都依赖于约翰·沃肯巴赫(John Walkenbach)解决方案的一种变体,该解决方案位于以下地址:

http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/

注意:

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

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

本技巧(3223)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007和更高版本)找到本技巧的版本: