乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 怎样利用<em>excel</em>vba实现进度条效果-excel vba进度条,vba显示处

怎样利用<em>excel</em>vba实现进度条效果-excel vba进度条,vba显示处

作者:乔山办公网日期:

返回目录: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
你先调试一下试试看,不行再联系

相关阅读

关键词不能为空

ppt怎么做_excel表格制作_office365_word文档_365办公网