#vba #label #frame #userform
#vba #этикетка #рамка #пользовательская форма
Вопрос:
У меня есть шесть маленьких фреймов внутри большого фрейма, и я создал кнопку для добавления нового маленького фрейма внутри большого фрейма с помощью этого кода:
For Each cCont In Me.Controls
If TypeName(cCont) = "Frame" Then
lCount = lCount 1
End If
Next cCont
If lCount = 6 Then
'384 is the top property of No.6 frame
'72 is every small frame distance
top = 384 72
ElseIf lCount > 6 Then
top = 384 (72 * (lCount - 5))
End If
Set addBtn = bigFrame.Controls.Add("Forms.Frame.1")
With addBtn
.Height = 66
.Left = 6
.top = top
.Width = 312
.name = "frameName" amp; lCount 1
.Caption = "frameName - " amp; lCount 1
.Font.Size = 12
End With
Итак, вот мой вопрос: как я могу добавить новую метку в новый маленький фрейм?
Я знаю, что код должен быть примерно таким:
Set label = bigFrame.frameName.Controls.Add("Forms.Label.1")
После добавления нового маленького фрейма, имя нового маленького фрейма должно быть frameName7. Что я должен написать в коде, чтобы при нажатии на кнопку добавлялась небольшая рамка с меткой. Спасибо.
Ответ №1:
У вас уже есть ссылка на только что вставленный фрейм, поэтому вы можете просто:
Dim myLabel As MSForms.Label
Set myLabel = addBtn.Controls.Add("Forms.Label.1", "MyLabel", True)
или непосредственно из пользовательской формы с помощью:
Set myLabel = Me.Controls("FrameName").Controls.Add("Forms.Label.1", "MyLabel", True)