循环浏览用户表单标签?

时间:2019-02-22 21:41:26

标签: excel vba

我试图在用户表单中循环显示标签,而没有5行代码。我知道这行不通,但是我想不出另一种方式来说明我在寻找什么。

for i = 0 in 4
     Userform.Lable1+i.caption = "Some Text"
next

2 个答案:

答案 0 :(得分:1)

您添加到UserForm的所有内容都处于Control表单中,并且可以通过循环UserForm.Controls来访问所有它们。通过使用TypeName(control),它将返回Control的类型,例如Label,Text,Combobox,Listbox,Button等。在这种情况下,我们只需要标签,因此我们只检查“标签”

'ctrl Variable for the Loop
Dim ctrl As Control
'Loop all Controls
For Each ctrl In UserForm.Controls
    'Check if the current ctrl is a Label
    If TypeName(ctrl) = "Label" Then
        'This is a label, do your thing yo
    End If
'Check Next Control
Next ctrl

答案 1 :(得分:0)

可以使用字符串(特定控件的名称)来访问用户窗体的Controls集合:

for i = 0 in 4
     Me.Controls("Label_" & i).caption = "Some Text"
next