用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(Visual Basic for Applications)来制作这样的进度条。 首先,我们需要了解VBA的基本结构。VBA是嵌入在Microsoft Office应用程序中的编程环境,如Excel,它允许用户自定义工作簿的...
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实现Excel中的进度条:详细步骤与代码解析 #### 知识点一:VBA与Excel集成 VBA(Visual Basic for Applications)是一种基于Microsoft的Visual Basic语言的脚本语言,它允许用户在Office应用程序(如Excel...
### VBA进度条的实现原理 进度条是用于显示任务完成状态的可视化工具,它能够帮助用户直观地了解当前进程。在VBA中,可以通过创建一个用户表单(UserForm)并利用控件来构建进度条。具体来说,通过调整Label控件的...
标题“VBA课件日地月绕转”指的是使用VBA(Visual Basic for Applications)编程语言制作的一个教学课件,该课件可能用于演示和解释天文学中的日、地、月之间的相对运动规律。VBA是一种强大的编程工具,通常集成在...
此外,还可以通过导入SVG矢量图形,利用外部脚本语言如VBA(Visual Basic for Applications)进行更复杂的编程控制。 此模板适用于制作演示文稿、产品发布会、培训课程等场合,以吸引观众的注意力,使枯燥的等待...
技巧133 进度条的制作 328 133-1 使用进度条控件 328 133-2 使用标签控件 330 技巧134 使用TreeView控件显示层次 333 技巧135 用户窗体添加图标 337 技巧136 用户窗体添加最大最小化按纽 339 技巧137 禁用窗体标题栏...
VBA允许你创建交互式甘特图,包括添加任务里程碑、进度条、依赖关系线等元素。例如,你可以通过VBA动态调整数据源,使甘特图自动更新。 3. **高级甘特图功能** - **里程碑**:在甘特图中表示关键事件,通常用一个...
进度条的制作是用矩形来实现的,它会随着时间的流逝逐渐填满。这里需要15个矩形,每2秒显示一个新的矩形,以表示时间的流逝。矩形的颜色设置为蓝色,无边框,排布成进度条形状。在进度条下方添加一个深色矩形作为...
目录 01001获取Excel版本 01002获取Excel的安装路径 01003获取当前用户名称 ...01005获取当前操作系统的名称和版本号 01006获取启动Excel的路径 01007获取打开Excel文件时的默认路径 01008获取模板保存的默认...05016制作...
这是使用VB 设计的注册ActiveX控件软件, 包含VB 调用系统命令的使用, 并使用了VB获取系统路径, 调用API函数, 复制文件等高级功能。 本资源还包含了一些VB常用的ActiveX控件, 如Flash8.ocx, comctl32.ocx, mci32.ocx,...
VB允许开发者添加提示信息、错误消息框和进度条等,提升用户交互性。 通过学习和实践这个VB家庭财务管理系统,学生不仅可以掌握VB编程基础,还能深入了解数据库操作、数据处理和软件工程的基本原则。同时,这个系统...
5. **VBA宏**:对于更复杂的日历,可能包含了Visual Basic for Applications (VBA)宏,这是一个内置的编程语言,可以编写脚本来自动化任务,比如一键切换年份或月份。 6. **排版与样式**:Excel提供了多种单元格...
总的来说,虽然Excel不是专业的动画制作工具,但通过巧妙地运用其内置功能和VBA编程,可以创造出多种富有创意的“动画”效果,使数据分析和报告更具吸引力和说服力。在实际应用中,应结合具体需求,灵活运用这些技巧...
描述中的“也可同步制作课词”意味着播放器不仅可以读取预先存在的歌词文件,还能允许用户同步创建或编辑歌词。特别提到“歌词文件要以.gc命名”,这表明开发者为歌词文件设定了特定的文件格式要求,即.gc文件。这种...
`mscomctl.ocx`是VB6中常用的用户界面组件,包含了各种通用的控件,如列表视图、树视图和进度条等。当系统提示“对象库未注册”错误时,意味着系统无法找到或正确识别该控件。 这个问题的主要原因可能有以下几点: ...
而"办公族 - PPT教程.url"则可能是一个链接,指向更多关于PowerPoint技巧和教程的资源,对于提升办公效率和PPT制作技能非常有帮助。 总的来说,"PPT倒计时器加载宏"是提高专业演示效率的有效工具,通过学习和应用...
在实践中,CustomViewDemo这个项目可能包含了一些具体的示例代码,如一个自定义进度条、自定义按钮等,帮助开发者更好地理解和学习自定义控件的制作过程。通过学习和实践,开发者可以更好地满足应用的个性化需求,...
VB6提供了一个丰富的控件库,包括按钮、列表框、复选框、单选按钮、进度条、定时器等,开发者可以直接在设计视图中放置这些控件,无需从头构建用户界面。此外,还可以自定义控件或使用第三方控件来扩展功能。 **...
甘特图制作 - **第一步**:在时间轴列中设置递增的时间标题。 - **第二步**:选中时间列,向下拖动填充后续日期。 - **第三步**:设置甘特图区域的样式,包括背景色、字体颜色等。 - **第四步**:通过条件格式设置...