首页 最新文章网站编程正文

VBA:自制进度条

进度条只是在一定程度上提升用户体验,但VBA里并不能表现实际的处理进度,因为vba是串行的单线程处理模式,无法进行并行处理,所以滚动条行进过程只是当前的弹出框,后续的处理必须弹出框的进度控制完事后并被销毁窗口后才可以走到下面的逻辑,所以形式上的进度条反而拖慢了处理的速度,但是给用户的感觉上更友好。

'*******************************************
'功能:自制进度条
'作者:刘相涛
'参数:无
'出力:进度条(VBA的单线程限制,无法并行处理)
'*******************************************
Sub ShowPercent()
    Dim i, j As Integer, k As String, arr As Variant    
    arr = Array(">", ">>", ">>>", ">>>>", ">>>>>", ">>>>>>", ">>>>>>>", ">>>>>>>>", ">>>>>>>>>", ">>>>>>>>>>>>>>>>>>")  
    k = "分析处理中,请稍候"   '提示的文字信息    
    j = 0    
    Form_wait.Show 0  '显示进度窗口    
    For i = 1 To 100 Step 0.05   '进度条行进速度    
        If j > UBound(arr) Then j = 0        
        Form_wait.Label4.Caption = k & arr(j)   '进度条样式        
        j = j + 1        
        Form_wait.Label2.Width = i / 100 * 200        
        Form_wait.Label3.Caption = Format(i, "0") & "%"        
        DoEvents   '转让控制权        
    Next i
    Unload Form_wait
End Sub


blob.png

评论

觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2023.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5