VBA ComboBox

ComboBoxes позволяют пользователям выбирать вариант из раскрывающегося списка меню. ComboBox можно создавать в пользовательских формах VBA или с помощью листа Excel. В этом руководстве вы узнаете, как создавать поля со списком и управлять ими в VBA и на листах Excel.

Если вы хотите узнать, как создать список, щелкните здесь: Список VBA

Если вы хотите узнать, как создать флажок, щелкните здесь: флажок VBA

Создать ComboBox на листе Excel

Чтобы вставить ComboBox в рабочий лист, вам нужно перейти к Вкладка разработчиканажмите Вставлять и в разделе ActiveX Controls выберите Поле со списком:

Изображение 1. Вставьте ComboBox в рабочий лист

Когда вы выбираете ComboBox, который вы вставили, вы можете нажать на Характеристики под Вкладка разработчика:

Изображение 2. Изменение свойств ComboBox

Здесь вы можете установить различные свойства ComboBox. Для начала изменили атрибут Имя к cmbComboBox. Теперь мы можем использовать ComboBox с этим именем в коде VBA.

Заполните ComboBox в коде VBA

Во-первых, нам нужно заполнить ComboBox значениями. В большинстве случаев ComboBox необходимо заполнить при открытии Workbook. Из-за этого нам нужно поместить код для заполнения ComboBox в объекте Рабочая тетрадь, процедура Открытым. Эта процедура выполняется каждый раз, когда пользователь открывает книгу. Вот код:

123456789 С Sheet1.cmbComboBox.AddItem "Джон".AddItem "Майкл".AddItem "Дженнифер".AddItem "Лилли".AddItem "Роберт"Конец с

Когда вы нажимаете на раскрывающееся меню, вы получаете 5 имен на выбор (Джон, Майкл, Дженнифер, Лилли и Роберт):

Изображение 3. Заполните ComboBox в VBA

Заполнение ComboBox из диапазона ячеек

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

Если вы хотите включить это, вам нужно перейти в Характеристики ComboBox и установите атрибут ListFillRange в диапазон ячеек (в нашем случае E2: E5):

Изображение 4. Заполните ComboBox из диапазона ячеек.

Мы связали наш ComboBox с диапазоном E2: E5, в который мы поместили нужные имена (Натан, Гарри, Джордж, Роберта). В результате ComboBox теперь заполнен этими именами:

Изображение 5. ComboBox заполнен из диапазона ячеек.

Получить выбранный элемент ComboBox в VBA

Назначение ComboBox - предоставить пользователю выбор. Чтобы получить выбор пользователя, вам необходимо использовать этот код:

123 Dim strSelectedItem как вариантstrSelectedItem = Sheet1.cmbComboBox.Value

Выбор пользователей находится в атрибуте Ценить из Sheet1.cmbComboBox объект. Это значение присваивается переменной strSelectedItem:

Изображение 6. Получите выбранное значение из ComboBox в VBA.

Мы выбрали Юлия в ComboBox и выполнил процедуру. Как вы можете видеть на рисунке 5, значение strSelectedItem является Юлия, которое и является выбранным нами значением. Теперь вы можете дальше обрабатывать эту переменную в коде.

Очистить ComboBox

Если вы хотите очистить ComboBox в VBA, вам необходимо использовать Прозрачный метод Sheet1.lstComboBox объект. Он удалит все элементы из ComboBox. Вот код:

1 Sheet1.cmbComboBox.Clear

Когда мы выполняем код, мы получаем пустой ComboBox:

Изображение 7. Очистите ComboBox.

Использование ComboBox в пользовательской форме

Как мы уже упоминали, Combobox чаще всего используется в пользовательских формах. Чтобы объяснить, как это сделать, мы сначала вставим пользовательскую форму. В редакторе VBA щелкните правой кнопкой мыши имя модуля, выберите Вставлять и выберите UserForm:

Изображение 8. Вставьте пользовательскую форму

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

Изображение 9. Вставьте ComboBox в пользовательскую форму.

Назовем ComboBox cmbComboBox. Чтобы заполнить его значениями, нам нужно вставить следующий код в метод Инициализировать объекта UserForm:

12345678910111213 Частная подписка UserForm_Initialize ()С UserForm1.cmbComboBox.AddItem "Джон".AddItem "Майкл".AddItem "Дженнифер".AddItem "Лилли".AddItem "Роберт"Конец сКонец подписки

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

Изображение 10. ComboBox со значениями в пользовательской форме.

Если вы хотите получить выбранное значение из ComboBox, вам необходимо использовать ту же логику для Combobox на рабочем листе, которая объяснялась ранее в статье.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave