Здравствуйте!
Проблема следующая.
Нужно добавить несколько контролов на форму в ходе выполнения макроса. То есть программно.
Помню, где-то год назад я так уже делал и у меня всё получалось. А теперь что-то упёрся и никак.
В максимально упрощённом виде форма имеет MultiPage по имени MultiPage1 и три кнопки с именами CommandButton1, CommandButton2 и CommandButton3. А код выглядит так:
Dim MyTextBox As Control
Private Sub CommandButton1_Click()
Set MyTextBox = MultiPage1.Pages(0).Controls.Add("MSForms" _
& ".TextBox.1", "MyTextBox", Visible)
End Sub
Private Sub CommandButton2_Click()
MultiPage1.Pages(0).Controls.Clear
End Sub
Private Sub CommandButton3_Click()
If MultiPage1.Pages(0).Controls.Count > 0 Then
MultiPage1.Pages(0).Controls.Remove "MyTextBox"
End If
End Sub
Private Sub UserForm_Initialize()
CommandButton1.Caption = "Add control"
CommandButton2.Caption = "Clear controls"
CommandButton3.Caption = "Remove control"
End Sub
Причём этот код я скопировал со справки Экселя (у меня почти то же, только без MultiPage).
А он не работает, выдаёт какую-то невиданную ошибку "Run-time error '2147221005(800401f3)': Недопустимая строка с указанием класса"
Что это?
Пробовал на двух компьютерах, всё одинаково.
В строке
Set MyTextBox = MultiPage1.Pages(0).Controls.Add("MSForms" _
& ".TextBox.1", "MyTextBox", Visible)
менял всё, что можно и нельзя.
Ни в какую.
Ответить
|