Цикл по меткам пользовательских форм? - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь перебирать метки в пользовательской форме, не имея 5 строк кода.Я знаю, что это не работает, но я не могу придумать другой способ проиллюстрировать то, что я ищу.

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

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Доступ к коллекции Controls пользовательской формы можно получить с помощью строки, которая является именем определенного элемента управления:

for i = 0 in 4
     Me.Controls("Label_" & i).caption = "Some Text"
next
0 голосов
/ 23 февраля 2019

Все, что вы добавляете в пользовательскую форму, находится в форме элемента управления, и ко всем этим можно получить доступ с помощью цикла UserForm.Controls.Используя TypeName (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...