Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Добавление контрола на форму Добавлено: 08.07.09 14:50  

Автор вопроса:  Jktu | ICQ: 381648295 
Здравствуйте!

Проблема следующая.
Нужно добавить несколько контролов на форму в ходе выполнения макроса. То есть программно.
Помню, где-то год назад я так уже делал и у меня всё получалось. А теперь что-то упёрся и никак.

В максимально упрощённом виде форма имеет 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)

менял всё, что можно и нельзя.
Ни в какую.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Jktu



ICQ: 381648295 

Вопросов: 8
Ответов: 32
 Профиль | | #1 Добавлено: 08.07.09 15:07
  1. 'border:1px solid #AAAA33; background:#FFFFCC; margin-left:20pt; padding:1pt 5pt 1.5pt 5pt; font-family:verdana; font-size:11px'>


Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 09.07.09 08:46
Все у тебя верно, только название классов MSForms должно начинаться с "Forms", а не с "MSForms", исправь и все заработает - проверял.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам