VBA Close UserForm | 2 лучших метода закрытия пользовательской формы с примерами

Когда мы создаем пользовательскую форму, она принимает данные в качестве ввода от пользователей, но данные, предоставленные форме, не закрываются, поэтому это может ввести пользователя в заблуждение, чтобы снова ввести данные, мы используем две разные команды, чтобы закрыть пользовательскую форму, когда ввод было дано, и это метод Unload me, чтобы закрыть пользовательскую форму, или мы можем использовать метод userform.hide.

Excel VBA Закрыть пользовательскую форму

Пользовательские формы жизненно важны при получении входных данных от пользователя в рамках проекта VBA. Обычно мы разрабатываем форму пользователя до того, как представим ее пользователю. После завершения проектирования пользовательской формы VBA нам нужно показать то же самое перед пользователем и потребовать кодирования VBA. Аналогично, чтобы закрыть пользовательскую форму, требуются знания кодирования VBA.

В этой статье мы покажем вам, как закрыть пользовательскую форму в кодировке VBA.

Как закрыть UserForm в Excel VBA?

Как только назначение пользовательской формы выполнено, есть смысл продолжать показывать пользовательскую форму перед пользователем, поэтому нам нужно закрыть пользовательскую форму. Мы можем закрыть пользовательскую форму с помощью операторов «Unload Me» и «UserForm.Hide». Хотя оба они немного отличаются друг от друга, в конечном итоге они послужат нашей цели.

Вы можете скачать этот шаблон VBA Close UserForm Excel здесь - VBA Close UserForm Excel Template

# 1 - Закройте пользовательскую форму с помощью инструкции «Unload Me» в VBA

Например, посмотрите на изображение пользовательской формы ниже.

Я назвал пользовательскую форму «MyUserForm».

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

Мне нужно заполнить необходимые данные, после того, как информация будет заполнена, если я нажму кнопку «Отправить», она сохранит те же данные на листе, который виден слева.

После нажатия кнопки отправки он захватил данные, которые я ввел в пользовательскую форму.

Если вы заметили, у нас есть еще одна кнопка под названием «Отмена». Что это значит?

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

Теперь я дважды щелкну кнопку «Отмена», и откроется автоматическая подпроцедура VBA, как показано ниже.

В этой процедуре нам нужно написать код VBA о том, что должно произойти, если мы нажмем кнопку «Отмена». Когда мы нажимаем на эту кнопку отмены, она должна закрыть пользовательскую форму, над которой мы сейчас работаем.

Итак, напишите код как «Разгрузите меня».

Код:

 Частная подписка CancelButton_Click () Выгрузить меня End Sub 

«Разгрузить меня» - это слово, которое мы используем, чтобы закрыть пользовательскую форму, над которой мы работаем. Здесь пользовательская форма распознает слово «Я» как саму UserForm.

«Выгрузить меня» можно использовать только в этой процедуре пользовательской формы, мы не можем вызывать этот оператор в других модулях. При вызове отобразится сообщение об ошибке « Недопустимое использование ключевого слова « Я »».

Хорошо, давайте теперь запустим код с помощью клавиши F5 или вручную, мы увидим пустую пользовательскую форму.

Заполните данные и нажмите «Отправить».

После нажатия кнопки отправки значения будут сохранены в указанных ячейках.

Если ввод данных завершен, нам нужно закрыть пользовательскую форму, не так ли?

Итак, нажмите кнопку «Отмена», чтобы закрыть пользовательскую форму, она закроет пользовательскую форму.

# 2 - Закройте UserForm с помощью метода Hide в Excel VBA

Мы также можем закрыть Userform, используя метод «Hide» в VBA. Теперь я еще раз дважды щелкну по кнопке отмены, чтобы увидеть частную подпроцедуру.

Поскольку мы уже написали код для закрытия пользовательской формы, мы можем увидеть существующий код в VBA. Сейчас удалю это.

Чтобы использовать метод Hide, нам нужно вызвать пользовательскую форму по ее имени. В данном случае имя нашей пользовательской формы - «MyUserForm».

После упоминания пользовательской формы по ее имени, если мы поставим точку (.), Мы сможем увидеть все свойства и методы этой пользовательской формы. Теперь выберу метод «Скрыть».

Хорошо, давайте еще раз запустим пользовательскую форму. Мы увидим пустую форму пользователя, сначала заполните данные.

Теперь, не нажимая кнопку «Отправить», я нажимаю кнопку отмены, она скроет пользовательскую форму.

Разница между выгрузкой и скрытием в Excel VBA

У вас должен быть вопрос, в чем разница между Unload & Hide, где оба служат одной цели. Между этими двумя есть разница. Теперь сначала я воспользуюсь оператором Unload Me. Посмотрите на изображение ниже.

Я ввел данные в пользовательскую форму, но еще не отправил их. Если я нажму «Отмена», пользовательская форма будет выгружена.

Теперь я снова запущу код с помощью сочетания клавиш Excel F5 или вручную, он отобразит пустую пользовательскую форму.

Несмотря на то, что я по ошибке ввел данные правильно, я нажал кнопку отмены, но когда новая форма пользователя появится снова, я заполнил данные с нуля.

Теперь воспользуюсь методом «Скрыть».

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

Вот как мы можем использовать оператор «Выгрузить» и метод «Скрыть», чтобы закрыть пользовательские формы в Excel VBA.