窗体中的进度条控件

工具箱默认情况下没有进度条控件,需在“工具”->“附加控件”里面添加Microsoft ProgressBar Control,version 6.0,即可在工具箱里面看到进度条控件。

  1. 添加进度条控件
  1. 创建一个窗体UserForm1,添加一个进度条ProgressBar1和一个标签Label1,即可可以完成VBA进度条设计。
  • eg:经常在一个循环运算中用到进度条,此时可以将循环运算在窗体UserForm1里面进行,即可将循环变量嵌入到ProgressBar1里面进行精准进度条设计。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private Sub UserForm_Activate()
Dim n As Integer
n = 3000
ProgressBar1.Min = 1
ProgressBar1.Max = n
Label1.Caption = "0%"
For n = 1 To 3000
ProgressBar1.Value = Str(n)
Label1.Caption = Round(n / ProgressBar1.Max, 2) * 100 & "%"
DoEvents
Next n
'Unload UserForm1
End Sub
```

<img src="https://img-blog.csdn.net/20160323194829476?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

# 在 Excel 下边显示进度条

- vba处理execl数据时,如果数据量比较大时,execl会执行时间较长,并且不容易看出来已执行的进度。
应用execl的进度条,让执行进度更加一目了然。

<img src="https://img-blog.csdnimg.cn/0a4482aa87054ba7a8185e3003e937de.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-y5pavRmFjZQ==,size_12,color_FFFFFF,t_70,g_se,x_16">

**进度条代码:**

```vb
Function GetProgress(curValue, maxValue)
Dim i As Single, j As Integer, s As String
i = maxValue / 20
j = curValue / i

For m = 1 To j
s = s & "■"
Next m
For n = 1 To 20 - j
s = s & "□"
Next n
GetProgress = s & FormatNumber(curValue / maxValue * 100, 2) & "%"
End Function

调用代码

1
Application.StatusBar = GetProgress(i, maxRow)

参数可以根据业务情况,自行传入。


相关链接

  1. VBA进度条
  2. VBA 处理数据的进度条实现

=================我是分割线=================

欢迎到公众号来唠嗑: