在Excel VBA应用程序对象的状态栏属性可以被用来指示一个冗长宏的进度。通过这种方式,可以让用户知道宏仍在运行。

现状:

用随机数(“E20 A1”),我们将要创建的宏填充范围。

Excel VBA StatusBar Property Example

添加以下代码行到命令按钮:

1.首先,我们声明Integer类型,命名为i,j和pctCompl的三个变量。

Dim i As Integer, j As Integer, pctCompl As Integer

2.添加双环。

For i = 1 To 20

For j = 1 To 5

Next j

Next i

添加以下代码行(在图3,4和5)的回路。

3.使用RANDBETWEEN函数进口20和100之间的随机数

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)

4.初始化变量pctCompl。第二个代码行写入可变pctCompl和在状态栏一些描述性文字的值。

pctCompl = (i - 1)  5 + (j  1)

Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"

例如:对于i = 3,J = 1,(3 – 1)5 +(1 1)= 11%已经完成。

5.我们使用Application对象的wait方法来模拟一个漫长的宏。

Application.Wait Now + TimeValue("00:00:01")

6.要恢复默认状态栏文本,设置状态栏属性设置为False(外循环)。

Application.StatusBar = False

结果当您单击工作表上的命令按钮:

Excel VBA StatusBar Property Result

中断宏在按Esc键或Ctrl + Break任何时候。为了更直观的方式,请参阅我们的’链接:/ VBA的例子正在进行指示灯[进度指示器]程序。