小兔网

下面我们将查看Excel VBA中创建进度指示器的程序我们将进度指示器保持尽可能简单,但看起来很专业。你准备好了吗?

我们将要创建的用户窗体如下所示:

Excel VBA中的进度指示器

要创建此用户窗体,请执行以下步骤。

1.打开Visual Basic编辑器如果“项目资源管理器”不可见,请单击“视图”,“项目资源管理器”。

2.单击插入,用户窗体。如果“工具箱”没有自动出现,请单击“视图”,“工具箱”。屏幕设置如下。

Excel VBA中的用户窗体屏幕设置

该用户窗体仅包含三个控件。一个框架控件和两个标签控件。

3.添加框架控件。您可以通过在工具箱中单击框架来实现。接下来,您可以在用户窗体上拖动框架控件。您需要更改此框架控件的某些属性。右键单击框架控件,然后单击“属性”。清空“标题”字段,将“高度”设置为24,将“宽度”设置为204。

4.添加第一个标签控件并将其放置在Frame控件中。右键单击标签控件,然后单击“属性”。将名称更改为“条形”,将“背景色”更改为“突出显示”,清空“标题”字段,将“高度”设置为20,将“宽度”设置为10。

5.添加第二个标签控件并将其放置在Frame控件上方。右键单击标签控件,然后单击“属性”。将名称更改为文本,并将标题更改为“ 0%完成”。

6.将用户窗体的标题更改为进度指示器。

完成此操作后,结果应与前面显示的用户窗体的图片一致。

7.在工作表上放置一个命令按钮,并添加以下代码行以显示用户窗体:

私人  CommandButton1_Click()

UserForm1.Show

End Sub

如果您浏览了该站点上的其他Userform示例,则知道现在是创建Sub UserForm_Initialize的时候了。只要加载了用户窗体,此Sub就会自动运行。因此,当您对用户窗体使用Show方法时,代码将自动执行。我们创建Sub UserForm_Activate,而不是Sub UserForm_Initialize。通过使用此子,Excel VBA可以更新用户窗体以显示宏的进度。

8.打开Visual Basic编辑器

9.在项目资源管理器中,右键单击UserForm1,然后单击“查看代码”。

10.从左侧下拉列表中选择“用户表单”。从右边的下拉列表中选择激活。

11.添加以下代码行:

私人  UserForm_Activate()

代码

结束 

说明:此子调用另一个将在稍后创建的名为代码的子代码。困惑?您可以浏览我们的功能和子章节以了解有关子的更多信息。如果您着急,只需执行以下步骤,就可以了。

12.将子命名的代码放入模块中(在Visual Basic编辑器中,单击“插入”,“模块”)。这只是一个例子。当您想为自己的宏使用此进度指示器时,这里就是添加您自己的代码的地方。代码如下。

Sub code()

Dim i As Integer,j As Integer,pctCompl as Single

Sheet1.Cells.Clear

for i = 1  100
    For j = 1  1000
        Cells(i,1).Value = j
    Next j
    pctCompl = i
    progress pctCompl
接下来

结束 

说明:首先,我们初始化一些变量。接下来,我们清除sheet1。我们使用双循环在工作表的前100行中显示1到1000之间的值。这将使Excel VBA保持一段时间忙碌,并使我们有机会查看宏的进度。变量pctCompl(percentCompleted的缩写)测量宏的进度。最后,我们调用另一个名为progress的子项,并传递变量pctCompl的值以更新用户窗体。这样我们可以看到宏的进度!

13.添加另一个名为progress的子项。该代码如下所示:

进度(pctCompl  单个

UserForm1.Text.Caption = pctCompl和“已完成百分比”
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

说明:第一行代码更改了第一个标签控件的标题。第二代码行更改第二标签控件的宽度。添加DoEvents以更新用户窗体。

14.退出Visual Basic编辑器,然后单击工作表上的命令按钮:

结果:

进度指标结果

注意:对于此宏,我们使用变量i来衡量进度。例如,在第11行,完成了10%。对于您的宏,这可能会有所不同。将变量pctCompl的值传递给子进度以更新Userform的技术保持不变。