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

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

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

Дааа !. Итак, откройте VBE с помощью CTRL + F11. Щелкните правой кнопкой мыши книгу, перейдите к вставке и щелкните Userform. У вас добавлена ​​пользовательская форма. Подробнее о пользовательских формах можно прочитать в VBA link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [здесь].

image

Теперь на панели инструментов выберите поле со списком. Это четвертый вариант в верхнем ряду. Если вы не видите набор инструментов. Перейдите в меню «Просмотр» и нажмите «Панель инструментов». Появится панель инструментов.

image

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

Как инициализировать выпадающий список в пользовательской форме? Это та часть, где большинство людей совершают ошибки. Иногда учащиеся пишут код для загрузки значений в поле со списком, а затем отправляют кнопки. И когда они загружают пользовательскую форму, поле со списком не показывает никаких значений. Чтобы загрузить поле со списком, вы должны написать код до загрузки пользовательской формы. Это можно сделать в модуле c или с помощью кнопки, в которую вы загружаете форму. Код для загрузки списка со списком должен быть перед командой formname.show.

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

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

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

Я определяю массив «States», содержащий несколько названий индийских штатов.

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

Имя моей пользовательской формы — userform1. Имя combobox — combobox1. Это имена по умолчанию. Вы можете изменить их в окне свойств.

Затем я инициализирую свойство списка combobox состояниями.

Затем я показываю userform1 с помощью команды show.

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

image

Инициализация Combobox с помощью события UserForm_Initialize ().

Другой метод загрузки компонентов combobox в пользовательскую форму — это использование события Userform Initialize. Это событие запускается до загрузки пользовательской формы.

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

Одна из таких вещей — загрузка элементов поля со списком. Итак, дважды щелкните пользовательскую форму, чтобы открыть область кодирования в объекте пользовательской формы. Теперь в левом раскрывающемся меню выберите форму пользователя. Затем в правом раскрывающемся меню выберите инициализировать.

image

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

Итак, мы пишем здесь код инициализации для combobox.

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

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

Sub load_userform()

UserForm1.Show

End Sub

Таким образом, пользователи будут запускать подпрограмму load_userform с помощью некоторой команды, кнопки или элемента, назначенного макросом. Когда компилятор запускает команду code userform1.show, он немедленно запускает событие useforma_initialize (). После этого он показывает пользователям форму пользователя.

Примечания:

Если вы напишете код для инициализации combobox значениями в команде button1 click, combobox ничего не покажет.

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

Получение значения из ComboBox Итак, мы используем формы для получения некоторой информации. И чтобы использовать эту информацию, нам нужно их получить. Чтобы получить любое значение из поля со списком пользовательской формы, мы используем свойство combobox.value. Обычно мы извлекаем значения из элементов формы после того, как пользователь заполняет форму и отправляет форму с помощью кнопки отправки. Итак, мы можем использовать событие commandbutton_click. Так что вставьте командную кнопку и напишите на ней submit, если у вас ее еще нет. Теперь дважды щелкните по нему, и вы попадете в событие commandButton_click.

Теперь создайте переменную для хранения значения. Если хотите, сохраните его на листе. Наконец, выйдите из формы, используя команду Unload Me. Как показано в приведенном ниже коде.

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

Так что да, ребята, вот как вы используете combobox в пользовательских формах VBA. Надеюсь, я был пояснительным и по существу. Если у вас есть какие-либо вопросы по этой теме или любые другие вопросы, связанные с VBA, задавайте мне в разделе комментариев ниже.

Статьи по теме:

link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Начало работы с пользовательскими формами Excel VBA] | * Я объясню, как создать форму в Excel, как использовать Панель инструментов VBA, как обрабатывать вводимые пользователем данные и, наконец, как хранить вводимые пользователем данные. Мы рассмотрим эти темы на одном примере и пошаговом руководстве.

link: / general-themes-in-vba-vba-variables-in-excel [переменные VBA в Excel] | * VBA означает Visual Basic для приложений.

Это язык программирования от Microsoft. Он используется с приложениями Microsoft Office, такими как MSExcel, MS-Word и MS-Access, тогда как переменные VBA являются конкретными ключевыми словами.

link: / general-themes-in-vba-excel-vba-variable-scope [Область действия переменной Excel VBA] | * Во всех языках программирования у нас есть спецификаторы доступа к переменным, которые определяют, откуда можно получить доступ к определенной переменной. Excel VBA — не исключение. VBA тоже имеет спецификаторы области видимости.

link: / cells-range-rows-and-columns-in-vba-what-is-the-difference-between-byref-and-byval-arguments-vba-интервью-question [ByRef and ByVal Arguments] | Когда аргумент передается как аргумент ByRef другой подгруппе или функции, отправляется ссылка на фактическую переменную. Любые изменения, внесенные в копию переменной, будут отражены в исходном аргументе.

link: / files-workbook-and-worksheets-in-vba-delete-sheet-without-confirm-prompts-using-vba-in-microsoft-excel [Удалять листы без запросов на подтверждение с помощью VBA в Microsoft Excel] | Поскольку вы удаляете листы с помощью VBA, вы знаете, что делаете.

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

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Добавить и сохранить новую книгу с помощью VBA в Microsoft Excel 2016] | В этом коде мы сначала создали ссылку на объект книги. А затем мы инициализировали его новым объектом книги. Преимущество этого подхода в том, что вы можете легко выполнять операции с этой новой книгой. Например, сохранение, закрытие, удаление и т. Д. Display A Message On Строка состояния Excel VBA * | Строку состояния в Excel можно использовать как монитор кода. Когда ваш код VBA длинный и вы выполняете несколько задач с помощью VBA, вы часто отключаете обновление экрана, чтобы экран не мерцал.

link: / general-themes-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Отключить предупреждающие сообщения с помощью VBA в Microsoft Excel 2016] | * Этот код отключает не только VBA предупреждения, но также увеличивает временную эффективность кода. Посмотрим как.

Популярные статьи:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-повышения-продуктивности [50 сочетаний клавиш Excel для повышения производительности] | Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel] | Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов. link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016] | Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенных значений.

Функция Countif важна для подготовки вашей приборной панели.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.