Userform.Show на кнопке формы не распознает пользовательскую форму, получив ошибку 424
Я очень мало знаю об VBA, но я пытаюсь создать пользовательскую форму для книги Excel. Идея – нажать кнопку, открыть пользовательскую форму, ввести информацию, нажать «ОК», и ваша информация правильно отформатирована и вставлена в рабочий лист.
У меня есть 3 пользовательских формы, которые работают нормально, но любой макрос, который я создаю, который ссылается на один из них, просто не признает, что существует определенная пользовательская форма.
Код, с которым я столкнулся, довольно прост:
- Excel VBA Userform - Как увеличить / уменьшить дату на один месяц
- Вызов пользовательской формы в Excel VBA и продолжение в зависимости от того, какая кнопка была нажата
- Сохранение рабочих листов с формами в формате pdf
- Добавление серийной коллекции в диаграмму с помощью UserForm (combobox)
- Экзамен Excel 2016 VBA активируется, но затем деактивируется
Private Sub LiquidFormButton_Click() LiquidEntryUserform.Show End Sub
Изменить (обновление): Поэтому я попытался создать новую пользовательскую форму с другим именем. Я скопировал и вставил все элементы управления из объекта в новую пользовательскую форму, изменил имя макроса, чтобы вызвать пользовательскую форму, и вуаля работает. Однако теперь пользовательская форма ничего не делает, потому что ни один из элементов управления не имеет каких-либо кодов, за которыми они говорят, что делать. Это нормально, я просто скопирую коды из сломанной формы и BOOM, теперь это не сработает. Сооооо что-то очень простое кодирование в самой пользовательской форме не позволяет отображать его, даже если новая пользовательская форма И сломанная одна, фактически, делает все остальное, что им нужно делать, кроме того, чтобы показать. Я выложу полный код пользовательской формы позже после некоторого поворота. Спасибо!
- UserForm ComboBox
- Как прокрутить флажки на динамически созданной пользовательской форме?
- Двойной щелчок по ячейке в Excel, файл с открытым исходным кодом этой строки в пользовательской форме
- Excel VBA Userform
- Динамическое название диаграммы из пользовательской формы
- Excel Macro Userform - отдельный код, обрабатывающий несколько флажков
- Передача данных между UserForms
- Excel Userform - Обратный фокус на ComboBox после нажатия кнопки ввода
Вы должны «создать экземпляр» такой формы
Private Sub LiquidFormButton_Click() Dim liquid as LiquidEntryUserform ' define a liquid var of the correct type Set liquid = new LiquidEntryUserform ' create the Form liquid.Show 'show it ' here you can still access variables ' on the form If liquid.TextBox1.Text = "700" Then 'do things End if End Sub
Мой проект выглядит так:
Вы можете использовать Обозреватель объектов (View | Object Browser или F2 ), чтобы найти формы и классы, которые у вас есть в вашем проекте: