Найти в Дзене

📌 Элемент управления ComboBox на пользовательской форме. Как заполнить. Пример решения

Оглавление

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

Сегодня подробно рассмотрим: как использовать данный элемент управления на пользовательской форме, как его заполнить и как установить связь между ComboBox и TextBox.

Элемент управления ComboBox на пользовательской форме. Как заполнить. Пример решения
Элемент управления ComboBox на пользовательской форме. Как заполнить. Пример решения

📢 Скачать исходник с примером кода вы можете в конце статьи 🔽

-3

▶️ Элемент управления ComboBox

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

➡️ Ключевые аспекты элемента управления ComboBox:

  • Редактирование и выбор: По умолчанию пользователь может выбирать значения только из списка. Однако, в зависимости от настроек можно позволить пользователю вводить свои значения.
  • События: ComboBox генерирует различные события, такие как Change, когда выбор пользователя меняется, или DropDown, когда выпадающий список открывается, например:
-5
  • Зависимость от данных: ComboBox может быть связан с данными в таблице. Это позволяет автоматически обновлять список в ComboBox при изменении исходных данных, что улучшает удобство использования и минимизирует возможные ошибки.
  • Стили и форматирование: Вы можете настраивать внешний вид ComboBox, включая цвета, шрифты и границы, чтобы он соответствовал общему стилю пользовательского интерфейса:
-6
  • Привязка к макросам: ComboBox может быть связан с макросами, что позволяет автоматизировать дополнительные действия при выборе конкретного значения, учесть возможные ошибки и предоставить соответствующее информационное сообщение пользователю.

▶️ Исходные данные

Для целей данного примера будем рассматривать данные предыдущего обзора:

-7

🔷 Задача: создать на пользовательской форме выпадающий список используя элемент управления ComboBox и отобразить сведения о студентах на основе определенного в ComboBox критерия.

Для отображения информации создадим пользовательскую форму с элементами управления ComboBox и TextBox:

-8

Вызов макроса будем задавать на "кнопку" размещенную на листе:

-9

Чтобы решение было универсальным определим именованный диапазон для данных выпадающего списка:

-10

▶️ Макрос для вызова формы

Для отображения созданной формы применим уже знакомый макрос:

-11

Теперь, при клике по кнопке будет отображена форма:

-12

▶️ Способы заполнения ComboBox

Чтобы заполнить ComboBox можно использовать любой из представленных ниже способов

🔘 Способ 1. Метод AddItem

-13

В данном случае непосредственно в коде с помощью метода AddItem указываются два предопределенных элемента "сдано" и "не сдано", которые в дальнейшем добавляются в выпадающий список.

🔘 Способ 2. Массив, создаваемый с помощью функции Array

Аналогично предыдущему способу можно задать предопределенные элементы выпадающего списка используя массив и функцию Array:

-14

🔘 Способ 3. Использование свойства RowSource

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

-15

Путем установки свойства RowSource на значение "критерий", список ComboBox будет заполнен данными, соответствующими указанному "критерию".

При добавлении нового критерия в список, он также будет отражен в выпадающем списке:

-16

🔘 Способ 4. Использование цикла For Each (уникальный список значений)

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

Это позволит сформировать выпадающий список из уникальных значений используя непосредственно источник данных:

-17

🔔 Обратите внимание! в данном примере применено событие UserForm_Activate. О том, в чем разница мы объясняли в предыдущем обзоре.

📝 Тестируем результат

Какой бы из рассмотренных способов вы бы ни выбрали, теперь у элемента управления ComboBox будет выпадающий список:

-18

▶️ Способы заполнения TextBox

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

Для реагирования на действия пользователя при выборе критерия будем использовать событие "Change":

-19

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

-20

▶️ Дополнительно

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

Чтобы продемонстрировать данный пример изменим форму следующим образом:

-21

Теперь в качестве критерия используется значение столбца "Студент".

Для отображения выпадающего списка зададим следующий макрос:

-22

* В данном случае предполагается что источник не содержит повторяющихся значений

Пример отображения выпадающего списка в ComboBox
Пример отображения выпадающего списка в ComboBox

Для того, чтобы отобразить в набранный балл и результат в соответствующих TextBox аналогично рассмотренному выше примеру будем использовать событие "Change":

Отображаем значения в TextBox1 и TextBox2
Отображаем значения в TextBox1 и TextBox2

Макрос реализует автоматическое отображение значений из столбцов C и D в TextBox1 и TextBox2 на пользовательской форме при изменении выбранного значения в выпадающем списке ComboBox1.

Событие ComboBox1_Change запускается при изменении выбора в выпадающем списке. После чего, согласно выбранному значению в столбце B находим соответствующие значения в столбцах C и D и отображаем их в соответствующих текстовых полях (TextBox1 и TextBox2).

Если соответствующие значения не найдены, текстовые поля очищаются.

📝 Тестируем результат:

Теперь достаточно выбрать из выпадающего списка "нужного Студента", чтобы на форме отобразился результат:

-25

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

Но, о том, как реализовать данный подход мы рассмотрим в следующих обзорах 😊. Оставайтесь на связи! 💕

-26
Наша команда очень заинтересована в создании качественного и полезного контента. Поэтому, если Вам понравился этот урок, не забудьте поблагодарить автора лайком 👍. Если у Вас есть вопросы или своё решение, не стесняйтесь оставить комментарий 💬. Нужно решение для другой проблемы? Пожалуйста, напишите свой вопрос в комментариях 💬, и мы обязательно рассмотрим его в ближайшей теме обзора. Мы ценим Вашу обратную связь 💝, так как это помогает нам оценить, насколько данный материал был полезен для Вас
Наша команда очень заинтересована в создании качественного и полезного контента. Поэтому, если Вам понравился этот урок, не забудьте поблагодарить автора лайком 👍. Если у Вас есть вопросы или своё решение, не стесняйтесь оставить комментарий 💬. Нужно решение для другой проблемы? Пожалуйста, напишите свой вопрос в комментариях 💬, и мы обязательно рассмотрим его в ближайшей теме обзора. Мы ценим Вашу обратную связь 💝, так как это помогает нам оценить, насколько данный материал был полезен для Вас

📍 Рекомендуемые статьи 🔽

СКАЧАТЬ ПРИМЕР