Я хочу, чтобы пользователь выбирал, на каких листе он хочет создать новую строку текста. Но количество листов, которые он может выбрать, может меняться со временем, и я не хочу жестко указывать имя листа.Создание флажков в пользовательской форме в зависимости от параметров
Вот пример («O» представляет собой флажок), что я намерен сделать:
o 01.2013
o 07.2013
o 01.2014
o 07.2014
Я создал UserForm с пустой рамкой, чтобы положить мои флажки, и добавил эту битую коду пользовательская форма:
Private Tck(10) As MSForms.CheckBox
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim i As Long
i = 1
For Each ws In ActiveWorkbook.Worksheets
If Left(ws.Name, 3) = "T2M" Then
Set Tck(i) = Frame1.Controls.Add("Forms.Checkbox.1", "Checkbox" & i)
Tck(i).Caption = Right(ws.Name, 7)
i=i+1
End If
Next
End Sub
Но он добавляет только один флажок с последним листом, который проверяет проверку if.
Я попытался сделать смещение между двумя итерациями, но я не могу изменить положение Tck(i)
, используя, например, Tck(i).top
.
Я также попробовал метод из ответа на этот вопрос: Adding controls to a frame in an Excel userform with VBA, но он не работает.
Работает отлично! благодаря – Tom