Вот одна процедура для вызова пользовательской формы.
Sub RunUserForm01()
Dim Frm As UserForm01
Set Frm = New UserForm01
With Frm
.TextBox1.Value = "Good morning"
.Show
End With
Unload Frm
Set Frm = Nothing
End Sub
UserForm01
- это имя формы, которая появляется в списке пользовательских форм Project Explorer. Код создает новый экземпляр этой формы здесь: Set Frm = New UserForm01
. Событие инициализации сработает в этот момент. Поместите точку останова в этой строке и выполните следующий код с помощью F8, чтобы локализовать любой отсутствующий объект в процедуре инициализации.
После инициализации у вас есть доступ ко всем частям формы. Например, вы можете установить значение элементов управления, как показано в моем коде для TextBox1
. То же самое можно было сделать в процедуре инициализации мгновение назад, но здесь у вас есть лучший доступ к любым рабочим листам и другому набору переменных, которые вы можете объявить в этой процедуре.
После FrmShow
форма получает контроль над VBA. , Управление возвращается к этой точке, когда код встречает Me.Hide
или нажата кнопка выхода. Затем мой код выгружает форму и удаляет всю память о ней.