如何在Excel VBA中设置进度条
1.进入Visual Basic编辑器,选择 插入-用户窗体,即生成一个userform1,从右下方的属性栏中(右键单击可以选择弹出属性栏),将caption设置为“正在进行模拟运算……”(这是一个标题,你自己可以随便取名字),width设置为350,Height设置为50。
2.紧接着需要插入四个Label标签(即控件工具栏中的大写字母A,如下图1)。
3.Label1放置在UserForm1的中间偏右一点,caption设置为空值,BackColor设置为白色,SpecialEffect设置为2-fmspecialeffectsunken,Width=285,Height=15。
4.Label2放置在Label1的外部左边,紧贴着Label1, caption设置为“进度”,颜色你自己随便选择(Forecolor中设置)
5.Label3放置在Label1的内部,紧贴着其左边,caption设置为空,BackColor设置为蓝色,Height=15,Width=20
6.Label4的caption设置为0%,ForeColor设置为“红色”(当然你可以随便设置你喜欢的颜色),BackStyle设置为0-fnbackstyletransparent(也就是把属性设置为透明的),Height=15,Width=20。参见图2。
7.然后在选择 插入-模块,在这里面编写一个宏就ok了。实际上就是通过一种运算去控制Label3的宽度,进而显示其进度。宏里面的计算只是一个例子,你可以根据你所跑循环的数量去设置计算进度的分母。
图1
图2
需要编制的宏:
Public Sub Macro_1()
Total=100000
With UserForm1
.Show 0
For i = 1 To total
.Label3.Width = Int(i / total * 285)
.Label4.Caption = CStr(Int(i / total * 100)) + "%"
DoEvents
Next i
End With
End Sub
注意,doevents必须要存在,否则进度条就看不清楚了。还有至于具体跑多少循环,需要根据你自己的程序来看,100000只是一个例子。你只需要将你的程序嵌入到你自己的循环下面就可以显示你自己的进度条了。
其他的属性你自己也可以去设置,我只是简单的给你做了一个例子