В моей пользовательской форме я спрашиваю у пользователя, сколько из них требуется, и на основе числа, которое пользователь вводит в элементы управления, динамически создается во время выполнения. Я хочу иметь возможность установить размер моей пользовательской формы на основе нижней позиции последнего динамического элемента управления, который был добавлен в пользовательскую форму. Ниже приведен код, который я написал для этого, все, что я хочу сделать в данный момент, предупреждает нижнюю позицию каждого динамического элемента управления, поскольку они добавляются в пользовательскую форму.Найдите нижнюю позицию динамического управления
Dim dynamicControl As Control
For i = 1 To TextBox1.Value
Set cList = Me.Controls.Add("Forms.ListBox.1")
With cList
.Name = "listbox" & (i)
.Left = 150
.Top = listStartPosition
.Width = 300
.Height = 140
End With
Next i
dynamicControl = "listbox" & (i)
Msgbox dynamicControl.Bottom
Когда я бегу мои ошибки кода это, когда я пытаюсь установить dynamicControl = "listbox" & 0
и ошибку я ПОЛУЧАТЬ является object variable or with block variable not set
переменная объекта или переменная блока не установлен
Вам необходимо сохранить элементы управления, которые вы создали в коллекции, и t курица просто вернет нижнюю часть последнего добавленного предмета – SWa
Я понял это, я могу просто сделать «Clist.Top» и потому, что знаю размер списков, я могу вернуть дно! Я должен был это осознать раньше, но спасибо за вашу помощь – user3538102
вы должны использовать ключевое слово 'Set' при назначении переменной объекта, например' Set dynamicControl = Me.Controls («listbox» & i) ' –