加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Sleep和进度条的使用(VB或vba中)

(2016-11-28 02:45:37)
标签:

模拟进度条

vba中模拟进度条

进度条的使用

sleep的注意事项

excel对接sql数据库

分类: Excel_VBA
Sleep和进度条的使用(VB或vba中)
-------------------------------------
第1:
      使用模块的顶部,先调用sleep的api
     '---使用sleep的api,如果没有中断,则sleep不能执行
     Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    如图:
   Sleep和进度条的使用(VB或vba中)


-------------------------------------
第2:
     设置模拟进度条的窗体,窗体上含说明进度的label
     如图:
Sleep和进度条的使用(VB或vba中)

-------------------------------------
第3:
     加载模拟进度条的窗体
    '---通过循环,将年度预算填写到,明细列表窗口
    A01_进度提醒.Show 0                                                                               '显示<进度窗体>,这里<有模式>
    A01_进度提醒.Label1.Caption = "正在执行      <自动填写年度预算>   ,功能 "
    A01_进度提醒.Label2.Caption = "该操作需要    <较长>时间           ,请<耐性>等待.......  "
    DoEvents                                                                                          'DoEvents 语句允许其它事件发生,包括第二次按此按钮。
    Sleep 3000                                                                                        'Wait 3 seconds(等待3秒)
     如图:
     Sleep和进度条的使用(VB或vba中)

第4:
     在循环语句中,调用,并修改显示进度内容
     
     For Hang_1 = 11 To ZhHang_1 - 1
          A01_进度提醒.Label1.Caption = "正在填写      <" & Worksheets("MX单据-01").Cells(Hang_1, 3).Value & ">  科目的年度预算 "
          A01_进度提醒.Label2.Caption = "该操作需要    <较长>时间           ,请<耐性>等待.......  "
          DoEvents                                                                                          'DoEvents 语句允许其它事件发生,包括第二次按此按钮。
          Sleep 3000                                                                                        'Wait 3 seconds(等待3秒)
        如图:
    Sleep和进度条的使用(VB或vba中)


-----------------------------------------
第5:
      卸载进度条窗体
     Unload A01_进度提醒
Sleep和进度条的使用(VB或vba中)

----------------------------------------
完整举例代码如下:



Public Sub 将_MX单据_01_页签的_年度预算数据_写入到_jch01_05_页签中()

     '---华宸专用
     Dim Hang_1 As Long                                                          'MX单据-01页签的行
     Dim ZhHang_1 As Long                                                        'MX单据-01页签的最后行
     ZhHang_1 = Worksheets("MX单据-01").Range("A65536").End(xlUp).Row
     Dim Lie_1 As Long                                                          'MX单据-01页签的列
     Dim ZhLie_1 As Long                                                        'MX单据-01页签的最后列
     ZhLie_1 = Worksheets("MX单据-01").Range("IV10").End(xlToLeft).Column  
    
     Dim Hang_2 As Long                                                          '明细列表页签的行
     Dim ZhHang_2 As Long                                                        '明细列表页签的最后
     ZhHang_2 = Worksheets("jch01-05").Range("A65536").End(xlUp).Row
    '---检查MX单据-01页签的第1列,即A列,是否填写完整
     For Hang_1 = 11 To ZhHang_1
           If Worksheets("MX单据-01").Cells(Hang_1, 1).Value = "" Then
                 MsgBox "您的<年度预算>输入窗体,第1列(A列)存在  为空的 年度,请填写后,在运行", vbOKOnly + vbCritical, "提醒"
                 Exit Sub
           End If
     Next
     '---通过循环,将年度预算填写到,明细列表窗口
    A01_进度提醒.Show 0                                                                               '显示<进度窗体>,这里<有模式>
    A01_进度提醒.Label1.Caption = "正在执行      <自动填写年度预算>   ,功能 "
    A01_进度提醒.Label2.Caption = "该操作需要    <较长>时间           ,请<耐性>等待.......  "
    DoEvents                                                                                          'DoEvents 语句允许其它事件发生,包括第二次按此按钮。
    Sleep 3000                                                                                        'Wait 3 seconds(等待3秒)     
     For Hang_1 = 11 To ZhHang_1 - 1
          A01_进度提醒.Label1.Caption = "正在填写      <" & Worksheets("MX单据-01").Cells(Hang_1, 3).Value & ">  科目的年度预算 "
          A01_进度提醒.Label2.Caption = "该操作需要    <较长>时间           ,请<耐性>等待.......  "
          DoEvents                                                                                          'DoEvents 语句允许其它事件发生,包括第二次按此按钮。
          Sleep 3000                                                                                        'Wait 3 seconds(等待3秒)
          For Lie_1 = 4 To ZhLie_1 - 1
                For Hang_2 = 11 To ZhHang_2
                      If Worksheets("MX单据-01").Cells(Hang_1, 1).Value = Worksheets("jch01-05").Cells(Hang_2, 4).Value Then                     '年度
                            If Worksheets("MX单据-01").Cells(Hang_1, 2).Value = Worksheets("jch01-05").Cells(Hang_2, 7).Value Then               '科目
                                  If Worksheets("MX单据-01").Cells(10, Lie_1).Value = Worksheets("jch01-05").Cells(Hang_2, 31).Value Then        '部门
                                        Worksheets("jch01-05").Cells(Hang_2, 51).Value = Worksheets("MX单据-01").Cells(Hang_1, Lie_1).Value      '借方年度
                                        Worksheets("jch01-05").Cells(Hang_2, 53).Value = Worksheets("MX单据-01").Cells(Hang_1, Lie_1).Value      '损益年度
                                        Worksheets("jch01-05").Cells(Hang_2, 55).Value = Worksheets("MX单据-01").Cells(Hang_1, Lie_1).Value      '预算年度
                                        
                                  End If
                            End If
                      End If
                Next
          Next
     Next
     
     Unload A01_进度提醒
     MsgBox "各科目/各部门的  <年度预算>  填写完毕,请检查", vbOKOnly + vbInformation, "提醒"  
End Sub
---------------------------
运行效果如下:
Sleep和进度条的使用(VB或vba中)--------------------------
该日志网址为: http://blog.sina.com.cn/s/blog_15b9821340102wqyb.html
 
如果您有任何问题或建议或疑问,欢迎反馈和交流,您的要求就是我们的方向和动力
 更多<数据分析>模板,将陆续发布,敬请期待   

更多介绍:http://www.df-bi.com
更多数据分析模型,欢迎扫描"微信公众号"
或者查找微信公众号:"DF数据工厂"  或  "data_f"
Sleep和进度条的使用(VB或vba中)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有