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

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

©️公众号:思考者文刀

评论

百度搜索

站点信息

  • 文章总数:436
  • 页面总数:9
  • 分类总数:30
  • 标签总数:924
  • 评论总数:517
  • 浏览总数:1804753
觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
合作微信:itker0110
新媒体:Excel加油站(抖音/小红书/哔哩/头条)
公众号:左手Excel右手VBA
知乎:Excel其实很简单
Copyright2015-2024.Powered by ©️云水客 | 网站地图 | 辽ICP备14000512号-5
您是本站第891名访客 今日有0篇新文章