优秀的编程知识分享平台

网站首页 > 技术文章 正文

VBA|使用窗体控件02:使用显示信息的标签控件

nanyue 2024-10-08 05:43:26 技术文章 6 ℃

标签控件主要用于在窗体中显示提示信息,如文字框、列表框的说明文字。标签控件也可直接识别用户的单击和双击操作事件。

在实际应用中,标签控件一般只是作为控件的说明,不接受用户的输入。

下面用一个实例“用进度条跟踪任务处理进度”来说明标签控件的使用:

1 插入一个用户窗体,并添加以下控件:

控件类型控件名称CaptionBackColor
窗体frmProgress进度条
标签Label1正在进行操作...
框架frameProgress0%
标签lblProgress
&H000000FF

2 编写窗体方法

双击窗体空白处,打开窗体的“代码”窗口,编写子过程UpdateProgress,用来更新进度条的显示。

Sub UpdateProgress(ByVal lStart As Long, ByVal lEnd As Long, ByVal lProgress As Long)

p = lProgress / (lEnd - lStart)

With Me

.frameProgress.Caption = Format(p, "0%")

.lblProgress.Width = p * (.frameProgress.Width - 10)

.Repaint '更新显示进度条

End With

If p >= 1 Then Unload Me '完成操作后,卸载窗体

End Sub

3 编写过程,并在其中调用UpdateProgress子过程显示进度

向工程中插入一个模块,编写以下代码:

Sub 显示进度条()

Dim i As Long, p As Single

With frmProgress

.lblProgress.BackColor = RGB(255, 0, 0)

.lblProgress.Width = 0

.Show 0 '显示进度条

End With

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

Application.ScreenUpdating = False

For i = 1 To 65536

If i Mod 2 = 0 Then

Rows(i).Hidden = True

End If

Call frmProgress.UpdateProgress(1, 65536, i)

Next

Application.ScreenUpdating = True

Unload frmProgress '卸载进度条

End Sub

以上代码将工作表中1-65536行中的偶数行隐藏起来。在For循环中,每执行一次循环,就调用UpdateProgress子过程更新进度窗口中的进度条。

-End-

Tags:

最近发表
标签列表