用VBA做Excel的大量数据处理时,程序要运行很长时间,当VBA程序运行后台运行时Excel是不允许操作的,这样Excel长时间的被后台运行的VBA占用,会给用户一直MicroSoft Excel程序死掉了的感觉。这样让用户很是头疼,不知道怎么办了?如果强行杀掉MicroSoft Excel进程,又心疼没有保存的哪些保存的Excel操作;如果等待又不知道MicroSoft Excel是不是真的死掉了,不知道要等待多长时间。所以VBA做Excel的大量数据处理时给用户一个表示数据处理完成度的进度条是很有必要的。
可能在VB.net等其它开发语言里直接有进度条的控件,使用起来非常方便。在VBA里我们只能自己做一个了,不过也很简单,操作的方法如下:
1.首先插入一个用户窗体,然后在窗体中插入三个Label,其属性设置请参见图片
2.窗体内部不用写任何VBA代码,只要我们想显示进度条时,先show进度条窗体,然后不断的改变Label1的长度和Label2的数值就OK了。代码参见以下
Function progressBarShow(n As Integer, total As Integer)
On Error GoTo err
With ProgressBar
.Show 0
.Label1.Width = Int(n / total * 400)
.Label2.Caption = CStr(Int(n / total * 100)) + "%"
DoEvents
End With
If (n = total) Then ProgressBar.Hide
thisEnd:
Exit Function
err:
MsgBox (err.Description)
End Function
注意这里边一个起到关键作用的语句就是DoEvents函数,没有这个函数进度条就起不到作用了。下面我们了解一下这个函数。
DoEvents 函数功能:转让控制权,以便让操作系统处理其它的事件。
DoEvents 函数会返回一个 Integer,DoEvents 返回 0。
DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。
说得简单一点,DoEvents把控制权转交给操作系统,让word,excel,powerpoint能够处理其它的操作。否则,屏幕将处于黑屏状态而不能进行相应的日常化操作。
只有使用这个DoEvents才能在不影响VBA处理数据的操作又能调用进度条窗体给用户显示数据处理进度。
做了一个简单的VBA例子,用进度条显示创建100excel新文件的进度,第一次写博客,还没找到上传附件的办法,等找到了我再给大家上传源代码,先给大家来个实力图吧!
相关推荐
VBA实现进度条的显示 Sub Test() ' The UserForm1_Activate sub calls Main UserForm1.LabelProgress.Width = 0 UserForm1.Show End Sub Private Sub UserForm_activate() Call Main End Sub Sub Main() ' ...
vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示
excel VBA 进度条,多种格式非常好用
好久没写代码了,这两天心血来潮写了个VBA的进度条。 特点描述下吧,不知道怎么传图片 1. 双色度显示,有进度的和没进度的互补色 2. 进度百分比跟进度条移动 3. 进度条带颜色渐变 4. 调用简单
VBA用VBA实现EXCEL中的进度条
VBA做一个彩色进度条,源码开放,简单,有代码注释,非常得nice
平常工作中经常要用VBA编程进行大量数据处理,这个时候excel如果点击会出现未响应,点多了可能会卡死,制作一个进度条方便用户知道当前的处理进度,减少excel卡死的风险,同时也显得非常高达上。
VBA实现进度条的编写,实现vbaExcel进度条的设置
VBA用VBA实现
NULL 博文链接:https://cfqlove.iteye.com/blog/738317
VB进度条控件,用Visual Basic编写的进度条控件,很经常用到的一个控件。加入这个功能相信会对你的软件提升不少用户体验。
VBA用VBA实现EXCEL中的进DU,共有4种方法
PPT+VBA实现计时(倒计时)展示,可用于高考倒计时或者系统运行时间计时展示,不用编程。PPT+VBA实现计时(倒计时)展示,可用于高考倒计时或者系统运行时间计时展示,不用编程
在EXCEL中,可以通过双击单元格,调出日历控件,通过对日历控件的操作,将所选日期更新到单元格中,该控件代码完全开放免费,供大家学习和使用,感兴趣的同学可以多多关注www.allmlp.com,让我们共同成长共同学习。
本代码实现了具有进度文字显示的进度条,VC资源
VBA的Excel证件制作工具(可批量啊)
VBA简易记账系统,收入,支出,结余,支持增加、删除和统计
Excel 实现的十五款经典小游戏源代码,基于Excel VBA 宏制作的经典小游戏源码
office 办公实用实例 - 在excel VBA窗体中制作菜单.
用VBA语言生成二维码