在用vba 窗体的过程中,有时候会遇到需要设计N个同类型的控件,如下图所示
用户窗体上有10个Label控件,每次单击Label控件都要执行一个相似的代码。
除了每个Label控件都写一个代码以外,还可以使用类模块设计使其共享一段代码。
步骤如下:
1.插入一个类模块,重命名为”clsForm”
2.在类模块中插入如下代码:
Public WithEvents oLabel As MSForms.Label Private Sub oLabel_Click() '要执行的代码 MsgBox oLabel.Caption End Sub
3.插入一个标准模块,输入如下的代码:
Public cls1() As New clsForm
4.在用户窗体的启动事件中输入如下的代码:
Private Sub UserForm_Initialize() For i = 1 To 10 sName = "Label" & i ReDim Preserve cls1(i - 1) Set cls1(i - 1).oLabel = UserForm1.Controls(sName) Next i End Sub
经过以上4个步骤,就使得10个标签控件同时响应一个事件了,就可以单击任意一个标签控件,就可以弹出这个标签的名称了。
发表评论