Excel VBA中 Application对象的StatusBar属性可用于指示冗长的宏的进度。这样,您可以让用户知道宏仍在运行。
情况:
我们将要创建的宏用随机数填充Range(“ A1:E20”)。
将以下代码行添加到命令按钮:
1.首先,我们声明三个Integer类型的变量,分别为i,j和pctCompl。
Dim i As Integer,j As Integer,pctCompl As Integer
2.添加一个双循环。
对于 i = 1 至 20
对于 j = 1 至 5
下一个 j
下一个 i
对于 j = 1 至 5
下一个 j
下一个 i
将以下代码行(分别位于3、4和5)添加到循环中。
3.使用RandBetween函数导入20到100之间的随机数。
单元格(i,j)。值= WorksheetFunction.RandBetween(20,100)
4.初始化变量pctCompl。第二行代码在状态栏中写入变量pctCompl的值和一些描述性文本。
pctCompl =(i-1)* 5 +(j * 1)
Application.StatusBar =“正在导入数据。”&pctCompl&“已完成%”
Application.StatusBar =“正在导入数据。”&pctCompl&“已完成%”
示例:对于i = 3,j = 1,(3-1)* 5 +(1 * 1)= 11%已完成。
5.我们使用Application对象的Wait方法来模拟一个冗长的宏。
Application.Wait Now + TimeValue(“ 00:00:01”)
6.要恢复默认状态栏文本,请将StatusBar属性设置为False(在循环外部)。
Application.StatusBar = False
单击工作表上的命令按钮时的结果:
注意:您可以随时按Esc或Ctrl + Break 来中断宏。有关更直观的方法,请参阅我们的进度指示器程序。