На форме в режиме работы макроса содать динамически CheBoxы?

Программирование на Visual Basic for Applications
Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

На форме в режиме работы макроса содать динамически CheBoxы?

Сообщение Павел_В » 09.07.2005 (Сб) 9:57

Вообще имеется ли возможность создавать динамически кнопки и др. компоненты?? Спасибо за ответ!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.07.2005 (Сб) 11:22

Да, имеется. Через userform.controls.add

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 09.07.2005 (Сб) 11:42

Может я что не так делаю ??

Dim Ch As CommandButton
Private Sub CommandButton1_Click()
Set Ch = UserForm1.Controls.Add("CommandButton", Name:=Ch, Visible:=True)
End Sub

Выдает ошибку инвалид класс

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.07.2005 (Сб) 11:49

Потому что если тебе надо чекбокс, то класс будет CheckBox. А во вторых, все стандартные классы контролов Office имеют префикс MSForms. То есть, писать надо MSForms.CheckBox

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 09.07.2005 (Сб) 11:54

Да разницы то нет, кнопка это или чекбокс, дело в том, что я и так пробовал, но все равно ошибка инвалид класс, а когда просто пробуешь написать MSFORMS. то CheckBox класса там нет
Что делать ?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.07.2005 (Сб) 11:58

Dim Ch As CommandButton

Private Sub CommandButton1_Click()

Set Ch = UserForm1.Controls.Add("MSForms.CommandButton", Name:="Ch", Visible:=True)

End Sub

Вот так.

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 09.07.2005 (Сб) 12:02

Да не работает это, все разобрался вот так надо:

Private Sub CommandButton1_Click()
Set Ch = UserForm1.Controls.Add("Forms.CheckBox.1")
End Sub

Павел_В
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 09.07.2005 (Сб) 9:52

Сообщение Павел_В » 09.07.2005 (Сб) 12:04

Все равно огромное спасибо, что наставил на путь истинный

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.07.2005 (Сб) 12:05

Странно как то, а в Object Browser все эти классы в MSForms либе прописаны.

MaDriver
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 31.05.2004 (Пн) 12:39

Добавить нужное кол-во RefEdit'ов через цикл?

Сообщение MaDriver » 18.09.2005 (Вс) 17:52

У меня примерно та же проблема, не знаю разрешима ли :roll: Можно ли добавить нужное мне количество refedit'ов в форму, через цикл или еще как? А может я вообще не по тому пути пошел :? Я хочу написать макрос, который будет искать совпадения в двух листах со схожими данными и по нескольким критериям, а для этого в первой форме моего макроса задается кол-во сравниваемых критериев, а потом по этому количеству создается нужное кол-во refedit'ов в которых предпологается вводить диапазоны этих критериев. :? :roll: Может есть более оптимальная схема для этой задачи? :roll:
Лень - Двигатель прогресса!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

    TopList