Как удалить пользовательскую форму в vba excel

Обновлено: 24.11.2024

При первой вставке модуля в VBA ему автоматически будет присвоено имя «Module1», а последующий модуль станет Module2, Module3 и т. д. Точно так же, когда вы вставите пользовательскую форму, она будет называться UserForm1, UserForm2 и т. д. .

Переименование модуля

Чтобы переименовать модуль или форму, необходимо включить окно свойств в VBE.

Если окна свойств не отображаются, нажмите F4 или перейдите в строку меню и выберите «Вид», «Окно свойств».

<р>3. Удалите имя модуля (в данном случае Module1) и введите имя, которым вы хотите назвать свой модуль.

<р>4. Нажмите Enter, чтобы переименовать модуль.

Вы переименовываете свои формы таким же образом.

Удаление модуля

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

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

Нажмите Удалить (в данном случае Module2)

Выберите меню "Файл" и выберите "Удалить (Module2)".

Появится окно предупреждения с вопросом, хотите ли вы экспортировать модуль или форму, прежде чем удалять их. Экспорт модуля или формы позволяет сохранить их как отдельный файл для использования в другом проекте Excel в другое время.

Чаще всего, когда вы удаляете модуль или форму, это происходит потому, что он вам не нужен, поэтому нажмите "Нет".

Именование модулей и форм

Хорошей практикой является переименование модулей и форм, чтобы дать им более осмысленные имена. Например, если UserForm1 будет формой для ввода сведений о счете, мы можем переименовать ее в frmInvoices. Точно так же, если Module1 будет использоваться для хранения некоторых общих функций, которые будут многократно использоваться в вашем коде, вы можете переименовать его в basGeneral или modGeneral (в зависимости от того, какие соглашения об именах вы предпочитаете использовать).

Программирование VBA стало проще

Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!

Этот форум перенесен в раздел вопросов и ответов Майкрософт. Посетите Microsoft Q&A, чтобы публиковать новые вопросы.

Отвечает:

Вопрос

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

Это то, что у меня есть на данный момент.
Ошибка на линии

Если InStr(myCtrl.Name, "Ярлык") = 1 И myCtrl.Caption = "Отчет", Тогда

Затемнить myCtrl As control
Затемнить i As Long

Для каждого myCtrl в .Controls

Если InStr(myCtrl.Name, "Ярлык") = 1 И myCtrl.Caption = "Отчет", Тогда

Конец, если
Далее myCtrl


Пожалуйста, посоветуйте, что я сделал не так.

Я искал в Google и испробовал много способов исправить это, но это не работает.


большое спасибо :)


ps - я не прошу никого писать для меня код, я сделал вышеописанное -

это не работает, поэтому профессионалы, сообщите, если можете

Ответы

У меня работает.

Возможно, VBA искажает тип данных Control?

Попробуйте изменить свое объявление на:

Все ответы

У меня работает.

Возможно, VBA искажает тип данных Control?

Попробуйте изменить свое объявление на:

Если InStr(myCtrl.Name, "Label") = 1, то

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

Я хотел настроить таргетинг только на ярлык с заголовком "Отчет"

Когда я добавляю вторую часть

И myCtrl.Caption = "Сообщить" Затем

Я получаю сообщение об ошибке Объект ошибки 438 не поддерживает свойство :(

Я избавился от второй части и вставил номер ярлыка, который сработал, чтобы удалить ярлык

Спасибо, что посмотрели это :)

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

Для каждого myCtrl в .Controls
Если myCtrl.Name Like "Label*" And _
myCtrl.Caption = "Report" Then
.Controls.Remove myCtrl.Name
Конец, если
Далее myCtrl

или еще лучше

Для каждого myCtrl в .Controls
If TypeName(myCtrl) = "Label" And _
myCtrl.Caption = "Report" Then
.Controls.Remove myCtrl.Name
Конец, если
Далее myCtrl

В обоих случаях удаляется только необходимый ярлык

Цель того, что вы делаете, неясна, но если вы создаете пользовательскую форму, которая изменяется в соответствии с выбором, а не удаляете элемент управления, для чего требуется, чтобы у пользователя был установлен параметр безопасности, чтобы доверять объектной модели проекта VBA. , на который вы не можете ответить, вы можете просто установить параметр 'left' элемента управления в положение справа от правого поля пользовательской формы, чтобы он фактически находился за пределами экрана. Затем так же легко вернуть его, когда это необходимо.

Узнайте, как обновлять и удалять с помощью пользовательской формы Excel VBA?

Это полезно для упрощения задач в таких областях бизнеса, как банковские записи, личные финансы, биржевая отчетность, ведение документации, автоматизация бронирования учебных помещений, бронирование номеров в отелях, бронирование автомобилей, резервирование ИТ-ресурсов и утверждение деловых расходов, таких как напитки, транспортные средства, канцелярские товары и т. д.

Этот метод поможет пользователю получить доступ к данным только в пользовательской форме VBA, а затем, если он хочет обновить какую-либо информацию, он может обновить ее, нажав кнопку «ОБНОВИТЬ», и те же записи будут обновлены. на листе (базе данных). Точно так же пользователи могут удалять записи, если это необходимо.

Изучите Excel VBA (от начального до продвинутого уровня)

Если вы хотите стать мастером языка программирования Excel VBA для Excel 2007, наши учебные пособия по макросам Excel VBA облегчат вам доступ к нему в таких приложениях, как Microsoft Office. Приходите создавать свои собственные макросы и правила в Excel.

Начнем с набора записей, который содержит много информации, как показано ниже.

(Рисунок 2) – форма пользователя VBA

Шаг 1. Нажмите Alt + F11.

Шаг 2. Нажмите «Вставить», «Форма пользователя». Если панель инструментов не появляется автоматически, щелкните Вид, Панель инструментов. Ваш экран должен быть настроен, как показано ниже.

Шаг 3. Добавьте элементы управления, перечисленные в таблице ниже. Как только это будет завершено, результат должен соответствовать изображению пользовательской формы, показанному ранее. Например, создайте элемент управления текстовым полем, щелкнув TextBox на панели инструментов. Затем вы можете перетащить текстовое поле на форму пользователя.

Шаг 4. Измените имена и подписи элементов управления в соответствии с таблицей выше. Имена используются в коде Excel VBA. Подписи — это те, которые появляются на вашем экране. Хорошей практикой является изменение имен элементов управления. Это облегчит чтение вашего кода. Чтобы изменить имена и подписи элементов управления, щелкните правой кнопкой мыши форму пользователя VBA и выберите каждый элемент управления.

Рекомендуется:

Обновление и удаление с помощью пользовательской формы Excel VBA, удаление пароля из Excel с помощью Excel VBA (кодирование) или вы можете узнать много других полезных советов и рекомендаций. Узнать больше

Создание динамических графиков и презентаций Excel. Кроме того, узнайте, как создать аналитическую диаграмму и график данных. Узнать больше

После того, как вы закончите создание пользовательской формы VBA, которая выглядит как пользовательская форма, показанная ранее, с еще двумя командными кнопками; «Обновить» и «Удалить». Эта пользовательская форма VBA извлечет всю информацию из листа, когда я выберу любое значение в «SL No» в пользовательской форме.

Каждый раз, когда вы выбираете «SL No» в раскрывающемся списке, значение для других полей будет изменяться. Сначала щелкните раскрывающийся список в пользовательской форме рядом с «SL No», чтобы установить свойство источника строки, см. изображение ниже для справки.

В пользовательской форме VBA следует задать имя Объект, как это сделал я, назвав раскрывающийся список «SL No» cmbslno.

(Рисунок 3) – форма пользователя VBA

Теперь, если вы выберете любое значение из поля, значения других полей будут заполнены автоматически. Для этого я применил простую формулу Vlookup с использованием кода VBA. См. коды.

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

Теперь дважды щелкните поле (cmbslno) и вставьте приведенный ниже код.

Если вы внимательно посмотрите на код, то заметите, что я применил формулу vlookup, чтобы получить значения для других полей. Вам нужно дать правильное имя для всех текстовых полей, которые вы собираетесь использовать в форме.

Обновление и удаление с помощью пользовательской формы Excel VBA, удаление пароля из Excel с помощью Excel VBA (кодирование) или множество других советов и рекомендаций по теме. Узнать больше

Создавайте динамические графики и презентации Excel. Кроме того, узнайте, как создать аналитическую диаграмму и график данных. Узнать больше

Теперь вы выбираете любое значение из раскрывающегося списка SL No, и вы увидите, что значения поступают из листа Excel, как показано на рисунке 2.

Теперь, если вы хотите обновить какую-либо информацию, то что нужно сделать.

Какое бы значение вы ни выбрали из раскрывающегося списка, оно извлекает значение соответствующих столбцов, верно?

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

Если вы выберете 1 из раскрывающегося списка «Нет SL», тогда будет показано значение из строки № 2. Не так ли? Поскольку первая строка является заголовком. Теперь нам нужно поиграть с этим трюком.

Создайте командную кнопку, назовите ее cmdupdate и измените заголовок на «Обновить».

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

Это создает чистый интерфейс пользовательских форм и отлично подходит для таких вещей, как страницы-заставки, или просто для придания вашим формам более чистого и оптимизированного вида.

Разделы:

Удалить строку заголовка из пользовательской формы

Чтобы удалить строку заголовка и границу, нам нужно добавить код VBA в обычный модуль, а затем вызвать этот код из события UserForm_Initialize, которое запускается при открытии формы.

Код модуля

Приведенный ниже код входит в обычный модуль в окне VBA. (Alt + F11, чтобы перейти к окну VBA, а затем Вставить > Модуль.)

Примечание: этот код должен располагаться в самом верху модуля перед любым другим кодом!

Следующий раздел кода можно разместить в любом месте модуля.

Код пользовательской формы

Для работы код также должен быть помещен в саму форму пользователя.

Все, что вам нужно сделать, это вызвать HideBar и передать ему ссылку на форму.

Этот фрагмент кода следует поместить в событие UserForm_Initialize. Внутри этого события обычно будет другой код, но самая простая версия события для этого примера может выглядеть так:

Чтобы узнать больше о событии Initialize и событиях в целом, просмотрите наше руководство по событиям UserForm.

Примечания

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

Это также лишает возможности перемещать форму по окну с помощью мыши; таким образом, вы должны подумать об этом, прежде чем внедрять этот код, или вы должны использовать дополнительный код, который позволяет пользователю перемещать форму, щелкая по ней и перетаскивая ее без строки заголовка.

Этот код прекрасно работает с экранами-заставками в Excel, но вы можете использовать его в любое время, когда хотите, чтобы ваша форма выглядела более упорядоченно.

Не забудьте загрузить образец файла, чтобы увидеть этот пример в Excel.

Вопрос?Спросите об этом на нашем форуме Excel

Курс Excel VBA — от новичка до эксперта

200+ видеоуроков 50+ часов обучения 200+ руководств Excel

С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)

Курс VBA — от новичка до эксперта

Создание экрана-заставки в Excel
Учебник: создание всплывающего окна, экрана-заставки, которое появляется при запуске Excel. Это позволяет вам .

Получение данных из пользовательской формы
Учебное пособие: как получить данные из пользовательской формы в Excel, в том числе из: текстового ввода (текстовое поле), списка.

Выберите диапазоны на рабочем листе из пользовательской формы
Учебное пособие: выберите диапазон в Excel из пользовательской формы и введите этот диапазон в форму, чтобы вы могли.

Удалить все проверки данных из ячейки в Excel
Макрос: удалить все проверки данных из ячейки в Excel с помощью этого бесплатного макроса Excel. Это здорово.

Формула для удаления первого или последнего слова из ячейки в Excel
Учебник : Формула Excel для удаления первого или последнего слова из ячейки. Вы можете скопировать и вставить fo.

Суммировать видимые строки из отфильтрованного списка в Excel
Учебник: Как суммировать только видимые строки из отфильтрованного набора данных в Excel. Для этого мы будем с нами.

Подпишитесь на еженедельные уроки

БОНУС: подпишитесь сейчас, чтобы загрузить нашу электронную книгу Top Tutorials!

Ссылка на наши 15 лучших учебных пособий была отправлена ​​вам, проверьте свою электронную почту, чтобы загрузить ее!

(Если вы не видите электронное письмо, проверьте папку "Спам" или "Промоакции" и обязательно добавьте нас в список контактов, чтобы получать наши электронные письма в будущем.)

Читайте также: