EXCEL VBA 自定义窗体中标签label属性的调用

2025年03月19日 11:47
有3个网友回答
网友(1):

vba中没有控件数组的功能,只能用类模块了。

首先在窗体中粘贴以下代码

Dim col As New Collection
Private Sub UserForm_Initialize()
Dim I As Integer
Dim myc As cmds
For I = 1 To 12  '有多少个label就改成to 多少
Set myc = New cmds
Set myc.cmd = Me.Controls("Label" & I)
col.Add myc
Next
Set myc = Nothing
End Sub

然后在插入一个类模块,重命名为cmds,粘贴以下代码

Public WithEvents cmd As MSForms.Label
Private Sub cmd_Click()
msgbox cmd.name
End Sub

注意一点,label的名称不能改变,用默认的。

网友(2):

Private Sub Label1_Click()
MsgBox Label1.Name
End Sub

就这么简单,不是吗?

网友(3):

要用到类模块的知识,建议学习一下类模块。