VBA入门到进阶常用知识代码总结61

第61集 日期和进度条
295、 注意事项
注意:64位office无法加载该控件,32位可以运行。
296、 常用的日期控件
有2个,一个是DTPicker,另一个是Calendar。附加控件中选择Microsoft Dtae and Time Picker Control和日历控件 12.0。
VBA入门到进阶常用知识代码总结61
DTPicker设置日期格式是,月份要大写。如:yyyy-MM-dd
297、 注册日历控件
Sub 自动注册日期控件()
Dim k
FileCopy ThisWorkbook.path & “/MSCOMCT2.OCX”, “C:\Windows\system32\MSCOMCT3.OCX”
k = Shell(“regsvr32 MSCOMCT2.OCX”)
End Sub
298、 进度条
① 通过TextBox和Label控件组合,实现进度显示的效果。
VBA入门到进阶常用知识代码总结61
Private Sub CommandButton1_Click()
Dim x, w, k, n
w = TextBox1.Width
n = 40000
'ProgressBar1.Max = n
'ProgressBar1.Min = 0
'ProgressBar1.Scrolling = ccScrollingSmooth
For x = 1 To n
k = k + w / n
'ProgressBar1.Value = x
Label1.Width = k
Label2.Caption = Format(x / n, “0.00%”)
DoEvents '把控制权交个系统,才能看到进度条变化
Next x
End Sub
Private Sub UserForm_Initialize()
Label1.Width = 0
End Sub
② 专业的进度条控件ProgressBar,通过附加控件找到Microsoft ProgressBar Control
299、 进度条示例
VBA入门到进阶常用知识代码总结61
Private Sub CommandButton1_Click()
Dim rg As Range, k As Long
Cells.Interior.ColorIndex = xlNone '清空单元格格式
ProgressBar1.Max = 70000 '设置进度条的最大值为5000行*14列
ProgressBar1.Min = 0
ProgressBar1.Scrolling = 1 '显示为连续的蓝色
For Each rg In Range(“a1:n5000”)
k = k + 1
If rg.Value < Val(TextBox1.Value) And rg.Value <> “” Then
rg.Interior.ColorIndex = 3
End If
ProgressBar1.Value = k
Next rg
MsgBox “设置完成”
End Sub