Динамическое добавление меток в пользовательскую форму = пустой пользовательский формат
Я пытаюсь динамически добавлять кнопки в пользовательскую форму, но пользовательская форма просто пустая. Ive упростило сущность кода как можно больше для проверки ошибок (не то, чтобы это помогло мне)
Sub addLabel()
UserForm2.Show
Dim theLabel As Label
Dim labelCounter As Integer
For labelCounter = 1 To 3
Set Label = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True)
With theLabel
.Caption = "Test" & labelCounter
.Left = 10
.Width = 50
.Top = 10
End With
End Sub
Есть ли способ проверить, были ли кнопки добавлены, но невидимы? Или почему они не добавляются. Любая помощь была высоко оценена.
Ответы
Ответ 1
Несколько вещей:
- Вам нужно показать свой UserForm как
vbModeless
- иначе код останавливается на UserForm2.Show
- Вы создаете объект с именем
Label
, а затем With
на theLabel
-
Затем вам нужно увеличить позицию трех ярлыков, чтобы избежать перекрытия (что я сделал с помощью Top
).
Sub addLabel()
UserForm2.Show vbModeless
Dim theLabel As Object
Dim labelCounter As Long
For labelCounter = 1 To 3
Set theLabel = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True)
With theLabel
.Caption = "Test" & labelCounter
.Left = 10
.Width = 50
.Top = 10 * labelCounter
End With
Next
End Sub
Ответ 2
попробуйте под кодом
Set theLabel = UserForm2.Designer.Controls.Add("Forms.Label.1", "Test1", True)