2012-05-09 4 views
0

У меня есть пользовательская форма и несколько кнопок (число будет установлено во время выполнения) в excel. При нажатии каждой кнопки открывается собственная версия пользовательской формы (та же пользовательская форма, но каждая кнопка будет иметь свою собственную пользовательскую форму, например: button1 откроет пользовательскую форму1, кнопка2 откроет userform2 и т. Д., Причем каждая пользовательская форма будет одним и тем же классом пользовательской формы).Инициализация класса пользовательской формы

Я думаю о создании класса пользовательской формы, и каждая кнопка будет создавать экземпляр объекта пользовательской формы.

Я просто не знаю, для чего нужен правильный код/​​синтаксис.

+0

Я могу быть наивным, но я думаю, вам нужно будет ссылаться на каждую конкретную пользовательскую форму как отдельный экземпляр ... вы говорите о создании пользовательской формы «на лету» каждый раз, когда нажимается кнопка, основанная на модуле класса ? –

+0

извините, если я использую неправильную терминологию ... Я просто изучаю VBA. У меня есть пользовательская форма, созданная в визуальном базовом редакторе. Когда пользователь нажимает кнопку в excel, создается пользовательский объект, и пользователь может взаимодействовать с этой пользовательской формой. При нажатии другой кнопки создается другой пользовательский объект того же пользовательского типа «класс». По существу, тот же макет, внешний вид и т. Д., Но данные, которые заполняются в пользовательской форме, принадлежат этой «кнопке». Dunno, если это все еще очень расплывчато или нет ... – Ehudz

ответ

0

Я думаю, что это может помочь, основываясь на вашем последнем комментарии.

Просто создайте одну пользовательскую форму. Затем создайте функцию, которая открывает пользовательскую форму и заполняет определенные данные параметризованными переменными. Затем для каждой кнопки вызов передать переменную в функцию. Что-то вроде этого:

Private Sub Button1_Click() 

load_user_form "Handy", "Code" 

End Sub 

Private Sub Button2_Click() 

load_user_form "different", "data" 

End Sub 

Function load_user_form(strField1 as String, strField2 as String) 

userForm.Show 
userForm.TextBox1.Value = strField1 
userForm.textBox2.value = strfield2 
End Function 

Этот код не может быть на месте, но он доставит вас туда.

+0

спасибо! Я думаю, что я могу использовать это как отправную точку для решения – Ehudz