作者:乔山办公网日期:
返回目录:excel表格制作
vba中没有专门的进度条控件,但是可以知用其他方式实现。
首先用一个Frame控件(frameProgress)和一个label控件(lblProgress)形成进度条的形状。frameProgress控件用来形成边框,道其专caption属性用来显示百分比进度;lblProgress控件背景色选择一个较深的颜色,用其width属性控制进度。
先写一个过程用于更新显示进度条:
Private Sub UpdateProgress(ByVal percent As Double)
frameProgress.Caption = Format(percent, "0%")
lblProgress.Width = percent * (frameProgress.Width)
'Me.Repaint
DoEvents
End Sub
参数percent在0至1之间,调用前先计算。
相关详细的资料和例子可以参阅《中文版Excel 2007高级VBA编程属宝典》一书。
1、vba本身有进度条控件,只百要添加使用就行了。
2、这种进度条度与程序运行的真实进度是不相符的,知是一种假象,其进度值靠我们用代码赋予它,而且还从一定程度上减缓程序的运行速度。道
3、这种进度条的控件来源于控件文件(.dll),即便你在自己的电脑运行正常,往往在别的电脑上运行时可能会内出错,需要重新注册它。本人不推荐作用,除非你的这个文件不需要在其它电脑上运行。
4、关于控件的制作,本人建议采用双文本框制件,这样就没有了上面的麻烦,而且还可以容定义它的颜色,比上面的灵活。
你可以用executeexcelmacro4 来设置,会快很多
自己先做一个进度条百,然后套用这段代码度,注,增加进度条一般会降低你的运行速度
UserForm1.Show 0
With UserForm1.ProgressBar1
.Min = 1
.Max = ii
.Scrolling = 0
.Value = i‘’知‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘你道的循环值
UserForm1.Caption = "正在运行,已完成" & Int(i / ii * 100) & "%,请稍候内!"
End With
你先调试一下试试看,不行再联系容