Excel vba значение в списке

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

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

UserForm.ComboBox – это элемент управления пользовательской формы, предназначенный для передачи в код VBA информации, выбранной пользователем из раскрывающегося списка или введенной с клавиатуры.

ComboBox представляет из себя комбинацию двух элементов управления: текстового поля (TextBox) и списка (ListBox), поэтому его еще называют «комбинированным списком» или «полем со списком». Также ComboBox сочетает в себе свойства этих двух элементов управления.

Изначально комбинированный список прорисовывается на форме в виде текстового поля с кнопкой для отображения раскрывающегося списка. Далее по тексту будем использовать слово «поле» в значении текстового поля в составе элемента управления ComboBox, а словосочетание «раскрывающийся список» – в значении списка в составе элемента управления ComboBox.

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

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

Свойства поля со списком

Свойство Описание
AutoSize Автоподбор размера комбинированного поля. True – размер автоматически подстраивается под длину выбранной или введенной строки. False – размер элемента управления определяется свойствами Width и Height.
AutoTab Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена.
ColumnCount Указывает количество столбцов в раскрывающемся списке. Значение по умолчанию = 1.
ColumnHeads Добавляет строку заголовков в раскрывающийся список. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False.
ColumnWidths Ширина столбцов в раскрывающемся списке. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;).
ControlSource Ссылка на ячейку для ее привязки к элементу управления ComboBox.
ControlTipText Текст всплывающей подсказки при наведении курсора на элемент управления.
Enabled Доступ пользователя к полю и раскрывающемуся списку. True – доступ разрешен, False – доступ запрещен*. Значение по умолчанию = True.
Font Шрифт, начертание и размер текста в поле.
Height Высота элемента управления ComboBox.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края комбинированного списка.
List Позволяет заполнить ComboBox данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам раскрывающегося списка по индексам для записи и чтения.
ListIndex Номер выбранной пользователем строки в раскрывающемся списке. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1.
ListRows Количество видимых строк в раскрытом списке. Если общее количество строк больше ListRows, появляется полоса прокрутки. Значение по умолчанию = 8.
Locked Запрет на отображение раскрывающегося списка, ввод и редактирование данных в поле. True – ввод и редактирование запрещены**, False – ввод и редактирование разрешены. Значение по умолчанию = False.
MatchRequired Задает проверку вводимых в поле строк с элементами списка. True – проверка включена (допускается ввод только строк, совпадающих с элементами списка), False – проверка выключена (допускается ввод любых строк). Значение по умолчанию = False.
MaxLenght Максимальная длина строки в поле. Значение по умолчанию = 0, что означает – ограничений нет.
RowSource Источник строк для раскрывающегося списка (адрес диапазона на рабочем листе Excel).
TabIndex Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0.
Text Текстовое содержимое (значение) поля (=Value).
TextAlign Выравнивание текста в поле: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края комбинированного списка.
Value Текстовое содержимое (значение) поля (=Text).
Visible Видимость поля со списком. True – ComboBox отображается на пользовательской форме, False – ComboBox скрыт.
Width Ширина элемента управления.

* При Enabled в значении False пользователь не может раскрывать список, а также вводить или редактировать данные в поле.
** Для элемента управления ComboBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.

В таблице перечислены только основные, часто используемые свойства поля со списком. Еще больше доступных свойств отображено в окне Properties элемента управления ComboBox, а все методы, события и свойства – в окне Object Browser.

Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ComboBox, а справа смотрите его методы, события и свойства.

Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление комбинированного списка и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления ComboBox на проекте пользовательской формы.

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

Используйте метод AddItem для загрузки элементов в поле со списком по одному:

With UserForm1.ComboBox1

  .AddItem «Элемент 1»

  .AddItem «Элемент 2»

  .AddItem «Элемент 3»

End With

Используйте свойство List, чтобы скопировать одномерный массив значений в элемент управления ComboBox:

UserForm1.ComboBox1.List = Array(«Строка 1», _

«Строка 2», «Строка 3», «Строка 4», «Строка 5»)

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

Используйте свойство RowSource, чтобы загрузить в ComboBox значения из диапазона ячеек рабочего листа:

UserForm1.ComboBox1.RowSource = «Лист5!B1:B15»

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

With UserForm1.ComboBox1

  ‘Указываем количество столбцов

  .ColumnCount = 5

  .RowSource = «‘Таблица с данными’!A1:E20»

End With

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

Подробнее о заполнении элемента управления ComboBox вы можете ознакомиться в отдельной статье с наглядными примерами. И еще более подробно – в статье о заполнении ListBox, так как ListBox заполняется теми же способами, что и ComboBox.

Привязка поля со списком к ячейке

Чтобы привязать комбинированный список к ячейке на рабочем листе Excel, необходимо свойству ControlSource присвоить адрес ячейки. Это можно сделать непосредственно в окне Properties элемента управления ComboBox или в коде VBA:

UserForm1.ComboBox1.ControlSource = "Лист1!B2"

Имя листа для составного адреса ячейки берется из названия ярлыка. Если имя листа содержит пробелы, оно заключается в одинарные кавычки. При указании адреса без имени листа, ComboBox привязывается к ячейке на активном листе.

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

Чтобы протестировать результаты привязки ячейки к полю со списком ComboBox1, разместите на пользовательской форме UserForm1 еще какой-нибудь элемент управления и запустите следующий код VBA Excel:

Sub Test()

With UserForm1.ComboBox1

  ‘Заполняем список ComboBox1 данными

  .List = Array(«Красный», «Оранжевый», «Желтый», _

  «Зеленый», «Голубой», «Синий», «Фиолетовый»)

  ‘Привязываем ComboBox1 к ячейке «A1»

  .ControlSource = «A1»

  ‘Открываем форму в немодальном окне

End With

  UserForm1.Show 0

End Sub

В результате работы кода пользовательская форма откроется в немодальном окне со значением в поле, скопированном из ячейки «A1» активного листа. Немодальное окно формы позволит редактировать ячейку «A1», не закрывая форму.

Меняйте значение ячейки «A1», нажимайте клавишу «Tab» или «Enter», поле комбинированного списка примет значение ячейки. Меняйте значение поля ComboBox1 с помощью клавиатуры или выбирайте из раскрывающегося списка, нажимайте клавишу «Tab» или «Enter», ячейка «A1» примет значение поля со списком.

Дополнительный элемент управления на форме нужен для передачи ему фокуса нажатием клавиши «Tab» или «Enter», чтобы завершить ввод значения в поле ComboBox1. Иначе новое значение поля будет передано в ячейку «A1» только при закрытии формы.

Значение ComboBox по умолчанию

В раскрывающийся список элемента управления ComboBox1 загружены названия семи основных цветов:

Private Sub UserForm_Initialize()

With Me.ComboBox1

  .List = Array(«Красный», «Оранжевый», «Желтый», _

  «Зеленый», «Голубой», «Синий», «Фиолетовый»)

  ‘Сюда добавляем код вставки значения по умолчанию

End With

End Sub

Есть несколько вариантов сделать так, чтобы при открытии пользовательской формы в поле ComboBox1 было отображено значение по умолчанию. Код следует вставлять перед строкой «End With».

‘Вариант 1 (произвольная строка)

.Value = «Моя строка по умолчанию»

‘или

.Value = «Синий»

‘Вариант 2 (произвольная строка)

.ControlSource = «A1»

Range(«A1») = «Моя строка по умолчанию»

‘или

.ControlSource = «A1»

Range(«A1») = «Желтый»

‘Вариант 3 (строка из списка)

.ListIndex = 0 ‘Красный

‘или

.ListIndex = 3 ‘Зеленый

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

UserForm1.ComboBox1.ControlTipText = "Выберите значение из списка"

Извлечение информации из ComboBox

Первоначально элемент управления ComboBox открывается с пустым полем или значением по умолчанию. Свойства Value и Text в этом случае возвращают пустую строку или текст по умолчанию.

Если пользователь выбрал новое значение из раскрывающегося списка или ввел его с клавиатуры, оно перезапишет значения свойств Value и Text. Из этих свойств мы с помощью кода VBA Excel извлекаем информацию, выбранную или введенную пользователем:

Dim myTxt As String

myTxt = UserForm1.ComboBox1.Value

‘или

myTxt = UserForm1.ComboBox1.Text

Вторую строку кода можно записать myTxt = UserForm1.ComboBox1, так как Value является свойством поля со списком по умолчанию.

Если вас интересует, как извлечь значение из многостолбцового раскрывающегося списка, смотрите об этом в статье с описанием элемента управления ListBox. Извлечение данных из комбинированного поля аналогично извлечению данных из ListBox. Знакомясь со статьей, следует учесть, что у ComboBox отсутствует многострочный выбор.

Иногда перед загрузкой в ComboBox требуется отобрать уникальные элементы из имеющегося списка. Смотрите, как это сделать с помощью объектов Collection и Dictionary.

Содержание

  1. Класс ListBox — создание простого списка в VBA
  2. VBA Excel ListBox
  3. VBA List Box — Как создать список в Excel VBA?
  4. Что такое список в Excel VBA?
  5. Как создать список в Excel?
  6. Как создать список в VBA?
  7. Окно списка VBA — Пример № 1
  8. Окно списка VBA — пример № 2
  9. То, что нужно запомнить
  10. Рекомендуемые статьи
  11. Окно списка VBA
  12. Что такое список в Excel VBA?
  13. Как создать список в Excel?
  14. Как создать список в VBA?
  15. Как создать список в пользовательской форме?
  16. Как добавить динамический элемент управления в список?
  17. Как добавить элементы в список элементов управления в VBA?
  18. Как удалить элементы из списка элементов управления с помощью VBA?
  19. Пример
  20. Константы списка в VBA
  21. Часто задаваемые вопросы
  22. Рекомендуемые статьи

Класс ListBox — создание простого списка в VBA

Элемент управления ListBox vba позволяет добавлять список с данными на форму. В отличии от комбинированного списка ComboBox, ListBox имеет следующие отличия:

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

Хорошо, прежде чем продолжить, вспоминаем – для запуска редактора VBA служит комбинация клавиш Alt + F11, все элементы управления находятся в окне ToolBox (меню Insert, пункт ToolBox). Вот некоторые свойства для объекта ListBox:

ColumnCount – позволяет задать количество столбиков в списке

ColumnHeads – позволяет задать режим отображения заголовков для колонок: true – заголовки отображаются, false – заголовки не отображаются. Данное свойство актуально при использовании компонента vba ListBox в Exel.

ColumnWidths – свойство определяет ширину колонок, например, “20;30;15”. Как видим, значение строковое, тут мы задали ширину для трех столбиков, если мы зададим ноль, то столбик не будет отображаться.

TextColumn – содержит целое значение, определяющее, содержимое которого столбца должно возвращать свойство Text.

BoundColumn — содержит целое значение, определяющее, содержимое которого столбца должно возвращать свойство Value.

Если для TextColumn и BoundColumn прописать 0, то будет возвращаться номер выбранного значения в списке объекта ListBox VBA языка.

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

MultiSelect – позволяет определить, как происходит выбор элементов: 0 – fmMultuSelectSingle (только одиночный выбор), 1 — fmMultuSelectMulti (возможность выбирать несколько элементов щелчком мыши или посредством нажатия клавиши “Пробел”), 2 — fmMultuSelectExtended (возможность выбирать несколько элементов посредством нажатия клавиши “Shift”).

VBA Excel ListBox

Теперь надо попрактиковаться, напишем пример использования компонента VBA ListBox в Excel. Но прежде всего, надо заполнить четыре столбика различными данными. Я создал книгу в Excel и заполнил первые четыре столбика такими данными:

  1. A – первое поле Автомобиль (оно будет служить заголовком), далее следуют марки автомобилей.
  2. B – первое поле Телефон (оно будет служить заголовком), далее следуют модели телефона Samsung.
  3. C – первое поле Компьютер (оно будет служить заголовком), далее следуют марки производителей PC.
  4. D – первое поле Напиток (оно будет служить заголовком), далее следуют марки напитков.

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

Внешний вид формы вы можете увидеть на рисунке. На форме должны быть расположены два элемента управления vba excel ListBox, три элемента TextBox и одна кнопка (CommandButton). Первый список будет содержать четыре столбца, в которых будет отображаться содержимое первых пятидесяти ячеек для A, B, C и D. Второй список будет содержать также все 4 столбика, но отображаться будет только первый. При нажатии на кнопку, произойдет считывание выбранного элемента во втором списке, и в текстовых полях отобразится содержимое для второй, третьей и четвертой колонки.

Чтобы не путать все еще больше, приступим к практике:

Private Sub UserForm_Initialize() With ListBox1 .ColumnHeads = True .ColumnCount = 4 .ColumnWidths = «60;80;60;30» .RowSource = «=A2:D50» .MultiSelect = fmMultiSelectSingle .TextColumn = 1 .BoundColumn = 0 End With With ListBox2 .ColumnHeads = False .ColumnCount = 4 .ColumnWidths = «60;0;0;0» .RowSource = «=A2:D50» .MultiSelect = fmMultiSelectSingle .TextColumn = 0 .BoundColumn = 0 End WithEnd SubPrivate Sub CommandButton1_Click() If ListBox2.Value <> «» Then TextBox1.Value = ListBox2.Column(1) TextBox2.Value = ListBox2.Column(2) TextBox3.Value = ListBox2.Column(3) End IfEnd Sub

UserForm_Initialize – настройка данных при инициализации формы (UserForm). Тут происходит настройка свойств для первого и второго объекта ListBox vba языка:

ListBox1 – будет отображаться заголовок, компонент содержит четыре колонки, их ширина: 60;80;60;30. Данные в список будут добавляться из диапазона A2:D50, присутствует возможность выделять только один элемент в списке.

ListBox2 – тут практически все тоже самое, что и для первого списка, только ширина колонок: 60;0;0;0 – то есть, будет отображаться содержимое только первой колонки.

CommandButton1_Click – тут происходит обработка щелчка по кнопке, а именно: происходит проверка, выбрано ли что-то во втором списке (vba excel ListBox), если да, то в первое текстовое поле запишется содержимое из второй колонки, во второе – из третей и в третье – из четвертой.

Источник

VBA List Box — Как создать список в Excel VBA?

Что такое список в Excel VBA?

Окно списка — это один из инструментов пользовательской формы в VBA. Как подсказывает само название, список будет содержать весь список значений, данных пользователем. В поле списка VBA входит пользовательская форма. В этой статье мы увидим, как создать список и как хранить значения в списке в Excel VBA.

Поле списка — это поле, в котором могут храниться значения. Из этого списка элементов пользователь может выбрать элемент, показанный в списке.

Мы также можем нарисовать список в обычном листе Excel.

Как создать список в Excel?

Предположим, у вас есть список месяца в одном из листов Excel.

Для этого списка месяцев мы создадим список. Выполните следующие шаги, чтобы создать список в листе Excel:

Шаг 1: Перейдите на вкладку разработчика. Под разработчиком, вкладка Перейти к опции Вставка и под вставкой, опция Перейти к контролю формы, под управлением формы выберите Список.

Шаг 2: После выбора поля списка нарисуйте поле списка на листе Excel.

Шаг 3: Щелкните правой кнопкой мыши на вставленном списке и выберите « Управление форматами» .

Шаг 4: В разделе «Управление форматами» перейдите в « Управление» . Выберите диапазон ввода в качестве диапазона названий месяцев и задайте ссылку на ячейку D1, а затем нажмите « ОК» .

Шаг 5: У нас будет список месяца в списке.

Шаг 6: Выберите любой из элементов в списке и увидите изменение в ячейке D1.

Итак, мы получили 3 в результате в ячейке D1, потому что Мар — третий элемент в списке.

Как создать список в VBA?

Создать окно списка не так просто, как мы видели в приведенном выше примере, вам необходимо иметь значительные знания о макросах Excel VBA.

Вы можете скачать этот шаблон Excel со списком VBA здесь — Шаблон Excel со списком VBA

Окно списка VBA — Пример № 1

Понимание списка VBA.

Вы можете рассмотреть следующий пример для лучшего понимания VBA List Box.

Выполните следующие шаги, чтобы создать список в VBA.

Шаг 1: В окне Visual Basic Вставьте форму пользователя.

Шаг 2: Как только вы вставите форму пользователя, вы увидите панель инструментов вместе с формой пользователя.

Шаг 3: В этом наборе инструментов выберите Список .

Шаг 4: Нарисуйте этот список на форме пользователя.

Шаг 5: После вставки списка, дайте правильное имя этому списку под окном Свойства.

Примечание. Если вы не видите этот список, нажмите клавишу F4, вы увидите окно свойств, подобное приведенному выше.

Шаг 6: Прокрутите вниз и найдите «Источник строки». В этом введите диапазон значений названия вашего месяца вместе с именем листа.

Шаг 7: Как только вы дадите ссылку, вы увидите названия месяцев в списке.

Шаг 8: Теперь в окне свойств списка выберите стиль линии как « 1 — fmListStyleOption ».

Шаг 9: Как только вы выберете стиль линии, вы сразу увидите влияние.

Шаг 10: Запустите этот код, вы увидите список в отдельности.

Шаг 11: Теперь мы добавим макрос-код для хранения данных, выбранных пользователем. Дважды щелкните по списку. Вы увидите отдельное имя макроса, как показано ниже.

Шаг 11: Когда пользователь выбирает месяц, мы будем хранить данные в ячейке G5. Чтобы сохранить введенные пользователем данные, добавьте код ниже.

Шаг 12: Теперь, если вы запустите код и выберете любой из месяцев, мы увидим значение, выбранное пользователем, в ячейке G5.

Я выбрал Jun, чтобы видеть Jun в ячейке G5. Таким образом, мы можем использовать поле со списком в ваших проектах VBA для получения информации от пользователей.

Окно списка VBA — пример № 2

Метод Add.Items для добавления значений в список

Выполните следующие шаги, чтобы создать список в VBA.

Шаг 1: Создайте новую пользовательскую форму. Вот это UserForm2.

Шаг 2: Добавить список в пользовательской форме 2.

Шаг 3: После вставки списка, дайте правильное имя этому списку в окне свойств, то есть Month_list_Box1 .

Шаг 4: Теперь в окне свойств списка выберите стиль линии как « 1 — fmListStyleOption ».

Шаг 5: Дважды щелкните по форме пользователя. Вы увидите автоматически вставленный макрос, как показано ниже.

Шаг 6: поместив курсор внутри макроса, выберите « Initialize ».

Шаг 7: Как только вы выбрали «Initialize», мы можем увидеть новый макрос, который будет создан чуть ниже текущего.

Шаг 8: Удалить старый макрос. Под инициализацией пользовательской формы напишите приведенный ниже код, чтобы добавить элементы в список.

Шаг 10: Теперь нажмите кнопку F5, чтобы запустить код, и вы получите следующий вывод.

То, что нужно запомнить

  • Если вы даете ссылку на ячейку напрямую, вам необходимо указать имя листа и ссылку на ячейку. (Вам необходимо добавить восклицательный знак (!) Перед именем листа).
  • Вы также можете добавить элементы в список с помощью метода Add.Item.
  • Если вы хотите разрешить пользователю выбирать более одного элемента, вам нужно выбрать опцию « fmMultiSelectMult» в разделе «Multi-Select» в окне «Свойства».

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

Это руководство к списку VBA. Здесь мы обсудим, как создать список в Excel и VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как использовать VBA Replace?
  2. Добавление списка в Excel
  3. Руководство по массивам Excel VBA
  4. Выпадающий список Excel

Источник

Окно списка VBA

Что такое список в Excel VBA?

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

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

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Как создать список в Excel?

Шаги для создания списка в Excel перечислены ниже:

    Шаг 1. Включите вкладку «Разработчик» на ленте Excel, чтобы получить доступ к элементам управления ActiveX. В диалоговом окне «Параметры Excel» нажмите «Настроить ленту в Excel» и установите флажок «Разработчик».
    Шаг 2: На вкладке «Разработчик» нажмите «Вставить», а затем элемент управления «список». Это вставит новый список на лист Excel.

Шаг 3: Нарисуйте прямоугольник на листе Excel, чтобы создать список, как показано на следующем рисунке.

Шаг 4: Выберите список, перейдите на вкладку «Разработчик» и выберите «Свойства». Откроется окно «Свойства».

Шаг 5: В окне «Свойства» введите «дни» в «ListFillRange». «Дни» — это именованный диапазон дней недели.

Шаг 6: Щелкните свойство «MultiSelect». В раскрывающемся списке выберите «1-fmMultiSelectMulti», как показано на следующем изображении.

Шаг 7: Щелкните свойство «ListStyle». В раскрывающемся списке выберите «1-fmListStyleOption». Это добавит флажки слева от перечисленных элементов, как показано на следующем рисунке.

Шаг 8: Закройте окно «Свойства». Окно со списком выглядит так, как показано на следующем рисунке.

Примечание: Вы можете выбрать «режим дизайна выключен», нажав «Режим дизайна». Это закрывает «режим проектирования».

Как создать список в VBA?

Шаги для создания списка в VBA перечислены ниже:

  • Шаг 1: Щелкните правой кнопкой мыши список и убедитесь, что выбран режим разработки. Это связывает поле со списком с ячейкой.
  • Шаг 2: В «свойствах» перейдите к свойству «LinkedCell» и заполните «B17», как показано на следующем рисунке.

  • Шаг 3: В «ListFillRange» введите «Месяц».

  • Шаг 4: Окно со списком выглядит так, как показано на следующем изображении.

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

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

Шаги для создания списка в пользовательской форме перечислены ниже:

  • Шаг 1: На вкладке «Разработчик» нажмите «Visual Basic» в разделе «Код» или нажмите клавиши ALT+F11.

  • Шаг 2: В меню «Вставка» нажмите «Пользовательская форма».

  • Шаг 3: Из панели инструментов перетащите элемент управления списком на «Пользовательскую форму».

  • Шаг 4: Дважды щелкните «UserForm» и выберите «Событие UserForm», как показано на следующем снимке экрана.

  • Шаг 5: Добавьте следующий код в промежуточную процедуру.

Частная подпрограмма UserForm_Initialize()

  • Шаг 6: Нажмите F5, чтобы запустить код.

Как добавить динамический элемент управления в список?

Действия по добавлению динамического элемента управления в поле со списком в форме UserForm с помощью VBAUserForm Использование VBA В VBA пользовательские формы представляют собой настраиваемые определяемые пользователем формы, предназначенные для приема пользовательского ввода в виде формы. Он имеет различные наборы элементов управления для добавления, такие как текстовые поля, флажки и метки. Подробнее перечислены ниже:

  • Шаг 1: На панели инструментов добавьте «CommandButton» в «UserForm».

  • Шаг 2: Щелкните правой кнопкой мыши «Командную кнопку» и выберите «Свойства».

  • Шаг 3: Измените заголовок «CommandButton» на «Create_Listbox».

  • Шаг 4: Дважды щелкните кнопку команды, и появится следующий код.

Частная подпрограмма CommandButton1_Click()

  • Шаг 5: Назовите следующую процедуру «Add_Dynamic_Listbox».

‘Добавить окно динамического списка и назначить его объекту ‘LstBx’

Установите LstBx = UserForm3.Controls.Add(«Forms.ListBox.1»)

  • Шаг 6: Нажмите F5, чтобы запустить макрос.

Как добавить элементы в список элементов управления в VBA?

Код для добавления элементов в элемент управления списком в VBA упоминается следующим образом:

Частная подпрограмма Insert _Items _To_LstBox ()

ListBox1.AddItem «Элемент 1»

ListBox1.AddItem «Элемент 2»

ListBox1.AddItem «Элемент 3»

ListBox1.AddItem «Элемент 4»

ListBox1.AddItem «Элемент 5»

Как удалить элементы из списка элементов управления с помощью VBA?

Код для удаления элементов из элемента управления списком в VBA упоминается следующим образом:

Пример

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

Константы списка в VBA

Константы, их значения и описание приведены в следующей таблице:

Часто задаваемые вопросы

#1 – Как использовать список в Excel?

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

Пользователь может прокручивать элементы списка. Настройка «типа выбора» позволяет пользователям выбирать несколько вариантов из списка. Когда пользователь выбирает элемент из списка, с таким выбором предпринимается действие.

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

# 2 — Как заполнить список в Excel VBA?

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

Для заполнения списка необходимо использовать следующий код:

С Sheet1.lstListBox
.AddItem «Джеймс»
.AddItem «Келли»
.AddItem «Элизабет»
.AddItem «Джордж»
.AddItem «Уильям»
Конец с

С этим кодом список заполняется 5 именами — Джеймс, Келли, Элизабет, Джордж и Уильям.

#3 – Как получить данные из списка в Excel?

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

1. Выберите «Управление форматом» в меню после щелчка правой кнопкой мыши по списку.
2. В поле «Ссылка на ячейку» введите координаты пустой ячейки.
3. Выберите ячейку, в которой будут отображаться данные из списка. Необходимо использовать следующую формулу:
«=ИНДЕКС([begin cell]:[end cell],[cell link],0)”

Примечание: «Начальная ячейка» означает первую ячейку списка. «Конечная ячейка» означает последнюю ячейку списка. «Ссылка на ячейку» означает ячейку, координаты которой были введены на втором шаге.

№ 4. В чем разница между списком и полем со списком?

Различия между полем со списком и полем со списком перечислены ниже.

– Окно списка состоит из списка элементов и позволяет пользователям выбирать один или несколько параметров. Напротив, поле со списком состоит из комбинации текстового поля и раскрывающегося списка. Текстовое поле позволяет пользователям вводить элемент. Выпадающий список позволяет пользователям выбирать элемент.
– В поле со списком отображаются все элементы в заданной области сразу, а в поле со списком — по одному элементу за раз. Элементы раскрывающегося списка поля со списком видны, когда пользователь щелкает
это.
– В поле со списком пользователь должен выбирать из доступных элементов, тогда как в поле со списком пользователь может ввести элемент, которого нет в списке.
– Окно списка используется, когда ввод ограничен элементами списка. Однако поле со списком используется там, где упоминается список предлагаемых вариантов.
– Окно со списком занимает больше места, поскольку сразу отображается полный список. С другой стороны, поле со списком помещается на маленьком пространстве, потому что список отображается только при нажатии кнопки
Кнопка «Стрелка вниз.

  • Поле со списком в Excel — это список, назначенный переменной, который можно использовать для выбора нескольких элементов.
  • В пользовательской форме список можно вставить, выбрав параметр списка.
  • При создании списка в Excel необходимо ввести данные в свойствах «ListFillRange», «MultiSelect» и «ListStyle».
  • «Режим дизайна» можно отключить, нажав «Режим дизайна».
  • При создании списка в пользовательской форме щелкните «Visual Basic» или нажмите клавиши ALT+F11.

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

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

  • Редактировать раскрывающийся список в ExcelРедактировать раскрывающийся список в ExcelРаскрывающиеся списки в Excel помогают пользователю вручную вводить данные в ячейку с определенными значениями на выбор.Подробнее
  • Флажок в ExcelФлажок в ExcelФлажок в Excel представляет собой квадратное поле, используемое для представления вариантов (или выбора) пользователю для выбора.Подробнее
  • Функция VBA MsgBoxVBA MsgBoxVBA MsgBox — это функция вывода, которая отображает обобщенное сообщение, предоставленное разработчиком. Этот оператор не имеет аргументов, и персонализированные сообщения в этой функции записываются в двойных кавычках, а для значений предоставляется ссылка на переменную.Подробнее

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Источник

Что такое список в Excel VBA?

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

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

Оглавление

  • Что такое список в Excel VBA?
    • Как создать список в Excel?
    • Как создать список в VBA?
    • Как создать список в пользовательской форме?
    • Как добавить динамический элемент управления в список?
    • Как добавить элементы в список элементов управления в VBA?
    • Как удалить элементы из списка элементов управления с помощью VBA?
    • Пример
    • Константы списка в VBA
    • Часто задаваемые вопросы
    • Рекомендуемые статьи

Как создать список в Excel?

Шаги для создания списка в Excel перечислены ниже:

  1. Шаг 1. Включите вкладку «Разработчик» на ленте Excel, чтобы получить доступ к элементам управления ActiveX. В диалоговом окне «Параметры Excel» нажмите «Настроить ленту в Excel» и установите флажок «Разработчик».
    Шаг 2: На вкладке «Разработчик» нажмите «Вставить», а затем элемент управления «список». Это вставит новый список на лист Excel.

    Список-окно-в-Excel-1

  2. Шаг 3: Нарисуйте прямоугольник на листе Excel, чтобы создать список, как показано на следующем рисунке.

    Список-окно-в-Excel-2

  3. Шаг 4: Выберите список, перейдите на вкладку «Разработчик» и выберите «Свойства». Откроется окно «Свойства».

    Список-окно-в-Excel-3

  4. Шаг 5: В окне «Свойства» введите «дни» в «ListFillRange». «Дни» — это именованный диапазон дней недели.

    Список-окно-в-Excel-4

  5. Шаг 6: Щелкните свойство «MultiSelect». В раскрывающемся списке выберите «1-fmMultiSelectMulti», как показано на следующем изображении.

    Список-окно-в-Excel-5

  6. Шаг 7: Щелкните свойство «ListStyle». В раскрывающемся списке выберите «1-fmListStyleOption». Это добавит флажки слева от перечисленных элементов, как показано на следующем рисунке.

    Список-окно-в-Excel-6

  7. Шаг 8: Закройте окно «Свойства». Окно со списком выглядит так, как показано на следующем рисунке.

    Список-окно-в-Excel-7

    Примечание: Вы можете выбрать «режим дизайна выключен», нажав «Режим дизайна». Это закрывает «режим проектирования».

Как создать список в VBA?

Шаги для создания списка в VBA перечислены ниже:

.free_excel_div{фон:#d9d9d9;размер шрифта:16px;радиус границы:7px;позиция:относительная;margin:30px;padding:25px 25px 25px 45px}.free_excel_div:before{content:»»;фон:url(центр центр без повтора #207245;ширина:70px;высота:70px;позиция:абсолютная;верх:50%;margin-top:-35px;слева:-35px;граница:5px сплошная #fff;граница-радиус:50%} Вы можете скачать этот шаблон Excel для списков здесь — Шаблон Excel для списков

  • Шаг 1: Щелкните правой кнопкой мыши список и убедитесь, что выбран режим разработки. Это связывает поле со списком с ячейкой.
  • Шаг 2: В «свойствах» перейдите к свойству «LinkedCell» и заполните «B17», как показано на следующем рисунке.

Список в Excel 8

  • Шаг 3: В «ListFillRange» введите «Месяц».

Список в Excel 9

  • Шаг 4: Окно со списком выглядит так, как показано на следующем изображении.

Список в Excel 10

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

Список в Excel 11

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

Шаги для создания списка в пользовательской форме перечислены ниже:

  • Шаг 1: На вкладке «Разработчик» нажмите «Visual Basic» в разделе «Код» или нажмите клавиши ALT+F11.

Список в Excel 12

  • Шаг 2: В меню «Вставка» нажмите «Пользовательская форма».

Список в Excel 13

  • Шаг 3: Из панели инструментов перетащите элемент управления списком на «Пользовательскую форму».

Список в Excel 14

  • Шаг 4: Дважды щелкните «UserForm» и выберите «Событие UserForm», как показано на следующем снимке экрана.

Список в Excel 15

  • Шаг 5: Добавьте следующий код в промежуточную процедуру.

Частная подпрограмма UserForm_Initialize()

ListBox1.AddItem «MBA»

ListBox1.AddItem «MCA»

ListBox1.AddItem «MSC»

ListBox1.AddItem «MECS»

ListBox1.AddItem «CA»

Конец сабвуфера

Список в Excel 16

  • Шаг 6: Нажмите F5, чтобы запустить код.

Как добавить динамический элемент управления в список?

Действия по добавлению динамического элемента управления в поле со списком в форме UserForm с помощью VBAUserForm Использование VBA В VBA пользовательские формы представляют собой настраиваемые определяемые пользователем формы, предназначенные для приема пользовательского ввода в виде формы. Он имеет различные наборы элементов управления для добавления, такие как текстовые поля, флажки и метки. Подробнее перечислены ниже:

  • Шаг 1: На панели инструментов добавьте «CommandButton» в «UserForm».

Список в Excel 17

  • Шаг 2: Щелкните правой кнопкой мыши «Командную кнопку» и выберите «Свойства».

Список в Excel 18

  • Шаг 3: Измените заголовок «CommandButton» на «Create_Listbox».

Список в Excel 20

  • Шаг 4: Дважды щелкните кнопку команды, и появится следующий код.

Частная подпрограмма CommandButton1_Click()

Конец сабвуфера

Список в Excel 21

  • Шаг 5: Назовите следующую процедуру «Add_Dynamic_Listbox».

Подпрограмма Add_Dynamic_Listbox()

‘Добавить окно динамического списка и назначить его объекту ‘LstBx’

Установите LstBx = UserForm3.Controls.Add(«Forms.ListBox.1»)

‘Позиция списка

LstBx.Left = 20

LstBx.Top = 10

Конец сабвуфера

  • Шаг 6: Нажмите F5, чтобы запустить макрос.

Как добавить элементы в список элементов управления в VBA?

Код для добавления элементов в элемент управления списком в VBA упоминается следующим образом:

Частная подпрограмма Insert _Items _To_LstBox ()

ListBox1.AddItem «Элемент 1»

ListBox1.AddItem «Элемент 2»

ListBox1.AddItem «Элемент 3»

ListBox1.AddItem «Элемент 4»

ListBox1.AddItem «Элемент 5»

Конец сабвуфера

Как удалить элементы из списка элементов управления с помощью VBA?

Код для удаления элементов из элемента управления списком в VBA упоминается следующим образом:

Sub Clr_LstBx()

UserForm3.ListBox1.Clear

Конец сабвуфера

Пример

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

Список в Excel 22Список в Excel 23

Константы списка в VBA

Константы, их значения и описание приведены в следующей таблице:

Список в Excel 24

Часто задаваемые вопросы

#1 – Как использовать список в Excel?

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

Пользователь может прокручивать элементы списка. Настройка «типа выбора» позволяет пользователям выбирать несколько вариантов из списка. Когда пользователь выбирает элемент из списка, с таким выбором предпринимается действие.

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

# 2 — Как заполнить список в Excel VBA?

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

Для заполнения списка необходимо использовать следующий код:

С Sheet1.lstListBox
.AddItem «Джеймс»
.AddItem «Келли»
.AddItem «Элизабет»
.AddItem «Джордж»
.AddItem «Уильям»
Конец с

С этим кодом список заполняется 5 именами — Джеймс, Келли, Элизабет, Джордж и Уильям.

#3 – Как получить данные из списка в Excel?

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

1. Выберите «Управление форматом» в меню после щелчка правой кнопкой мыши по списку.
2. В поле «Ссылка на ячейку» введите координаты пустой ячейки.
3. Выберите ячейку, в которой будут отображаться данные из списка. Необходимо использовать следующую формулу:
«=ИНДЕКС([begin cell]:[end cell],[cell link],0)”

Примечание: «Начальная ячейка» означает первую ячейку списка. «Конечная ячейка» означает последнюю ячейку списка. «Ссылка на ячейку» означает ячейку, координаты которой были введены на втором шаге.

№ 4. В чем разница между списком и полем со списком?

Различия между полем со списком и полем со списком перечислены ниже.

– Окно списка состоит из списка элементов и позволяет пользователям выбирать один или несколько параметров. Напротив, поле со списком состоит из комбинации текстового поля и раскрывающегося списка. Текстовое поле позволяет пользователям вводить элемент. Выпадающий список позволяет пользователям выбирать элемент.
– В поле со списком отображаются все элементы в заданной области сразу, а в поле со списком — по одному элементу за раз. Элементы раскрывающегося списка поля со списком видны, когда пользователь щелкает
это.
– В поле со списком пользователь должен выбирать из доступных элементов, тогда как в поле со списком пользователь может ввести элемент, которого нет в списке.
– Окно списка используется, когда ввод ограничен элементами списка. Однако поле со списком используется там, где упоминается список предлагаемых вариантов.
– Окно со списком занимает больше места, поскольку сразу отображается полный список. С другой стороны, поле со списком помещается на маленьком пространстве, потому что список отображается только при нажатии кнопки
Кнопка «Стрелка вниз.

  • Поле со списком в Excel — это список, назначенный переменной, который можно использовать для выбора нескольких элементов.
  • В пользовательской форме список можно вставить, выбрав параметр списка.
  • При создании списка в Excel необходимо ввести данные в свойствах «ListFillRange», «MultiSelect» и «ListStyle».
  • «Режим дизайна» можно отключить, нажав «Режим дизайна».
  • При создании списка в пользовательской форме щелкните «Visual Basic» или нажмите клавиши ALT+F11.

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

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

  • Редактировать раскрывающийся список в ExcelРедактировать раскрывающийся список в ExcelРаскрывающиеся списки в Excel помогают пользователю вручную вводить данные в ячейку с определенными значениями на выбор.Подробнее
  • Флажок в ExcelФлажок в ExcelФлажок в Excel представляет собой квадратное поле, используемое для представления вариантов (или выбора) пользователю для выбора.Подробнее
  • Функция VBA MsgBoxVBA MsgBoxVBA MsgBox — это функция вывода, которая отображает обобщенное сообщение, предоставленное разработчиком. Этот оператор не имеет аргументов, и персонализированные сообщения в этой функции записываются в двойных кавычках, а для значений предоставляется ссылка на переменную.Подробнее

In this Article

  • Create a ComboBox in Excel Worksheet
  • Populate a ComboBox in VBA code
  • Populate a ComboBox from a Cells Range
  • Get a Selected Item of a ComboBox in VBA
  • Clear a ComboBox
  • Use a ComboBox in a Userform

This tutorial will demonstrate how to work with ComboBoxes in VBA.

ComboBoxes allow users to select an option from a drop-down menu list. ComboBoxes can be created in VBA UserForms or with an Excel worksheet. In this tutorial, you will learn how to create and manipulate ComboBoxes in VBA and in Excel worksheets.

If you want to learn how to create a Listbox, click here: VBA Listbox

If you want to learn how to create a Checkbox, click here: VBA Checkbox

Create a ComboBox in Excel Worksheet

In order to insert a ComboBox in the Worksheet, you need to go to the Developer tab, click Insert and under ActiveX Controls choose Combo Box:

vba insert combobox

Image 1. Insert a ComboBox in the Worksheet

When you select the ComboBox which you inserted, you can click on Properties under the Developer tab:

vba combobox properties

Image 2. Change ComboBox Properties

Here you can set different properties of the ComboBox. To start, we changed the attribute Name to cmbComboBox. Now, we can use the ComboBox with this name in VBA code.

Populate a ComboBox in VBA code

First, we need to populate the ComboBox with values. In most cases, a ComboBox needs to be populated when the Workbook is opened. Because of this, we need to put a code for populating the ComboBox in object Workbook, procedure Open. This procedure is executed every time a user opens the Workbook. Here is the code:

With Sheet1.cmbComboBox

    .AddItem "John"
    .AddItem "Michael"
    .AddItem "Jennifer"
    .AddItem "Lilly"
    .AddItem "Robert"

End With

When you click on the drop-down menu, you will get 5 names to choose from (John, Michael, Jennifer, Lilly and Robert):

vba combobox populate

Image 3. Populate the ComboBox in VBA

Populate a ComboBox from a Cells Range

Another possible way to populate a ComboBox is to let a user do it. A ComboBox can be linked to the cells range. In this approach, every time a user enters a new value in the cells range, the ComboBox will update with that value.

If you want to enable this, you have to go to the Properties of the ComboBox and set the attribute ListFillRange to the cells range (in our case E2:E5):

vba populate combobox from cells range

Image 4. Populate the ComboBox from the cells range

We linked our ComboBox with the range E2:E5, where we put names we want (Nathan, Harry, George, Roberta). As a result, the ComboBox is now populated with these names:

vba populated combobox

Image 5. Populated ComboBox from the cells range

Get a Selected Item of a ComboBox in VBA

The purpose of a ComboBox is to get a users choice. In order to retrieve a users choice, you need to use this code:

Dim strSelectedItem As Variant

strSelectedItem = Sheet1.cmbComboBox.Value

The users selection is in the attribute Value of Sheet1.cmbComboBox object. This value is assigned to the variable strSelectedItem:

vba combobox get selected value

Image 6. Get a selected value from the ComboBox in VBA

We selected Julia in the ComboBox and executed the procedure. As you can see in Image 5, the value of the strSelectedItem is Julia, which is the value we selected. Now you can process this variable further in the code.

Clear a ComboBox

If you want to clear a ComboBox in VBA, you need to use Clear method of Sheet1.lstComboBox object. It will delete all the items from the ComboBox. Here is the code:

Sheet1.cmbComboBox.Clear

Notice that the Clear method does not delete the attribute ListFillRange, so it must be removed from the properties of the ComboBox beforehand.

When we execute the code, we get the empty ComboBox:

vba clear combobox

Image 7. Clear the ComboBox

Use a ComboBox in a Userform

As we mentioned, Combobox is most often used in Userforms. To explain how you can do it, we will first insert an Userform. In VBA editor, right-click on Module name, click on Insert and choose UserForm:

vba combobox insert userform

Image 8. Insert a Userform

To display controls for inserting, you need to enable the Toolbox. To do this, click on the Toolbox icon in the toolbar. After that, you will get the windows with all the controls available. You can click on ComboBox to create it in the Userform.

vba combobox insert in userform

Image 9. Insert a ComboBox in the Userform

We will name the ComboBox cmbComboBox. In order to populate it with values, we need to put the following code into the method Initialize of the object UserForm:

Private Sub UserForm_Initialize()

    With UserForm1.cmbComboBox

        .AddItem "John"
        .AddItem "Michael"
        .AddItem "Jennifer"
        .AddItem "Lilly"
        .AddItem "Robert"

    End With

End Sub

This code triggers every time a user runs the Userform and populates the Combobox with these 5 names:

vba combobox in userform

Image 10. The ComboBox with values in the Userform

If you want to get selected value from the ComboBox, you need to use the same logic for the Combobox in a Worksheet, which is explained earlier in the article.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
vba save as

Learn More!

How to get data from a ListBox control and put it into a worksheet in Excel.

ef31ffec140344f83332bf3f16bf56f2.jpg

Sections:

Get Data from a Single Selection ListBox

Get Data from a Multiple Selection ListBox

Where to Put the Code

Notes

Get Data from a Single Selection ListBox

ListBox1.Text

ListBox1 is the name of the ListBox with the selection.

Here is an example of using this feature where you take the selection from the ListBox and place it in cell B2 in the worksheet.

'Get input from ListBox
ListBoxValue = ListBox1.Text
'Store input in the worksheet
Sheets("Sheet1").Range("B2").Value = ListBoxValue

This puts the selected item into the ListBoxValue variable, which is then used to input that value into cell B2 on the worksheet named «Sheet1».

Note: If the option to make multiple selections is enabled, the above method will not work, even if the user selects only 1 item from the list; in such cases, use the next method.

Get Data from a Multiple Selection ListBox

(To enable multiple ListBox selections, view this tutorial: Multiple Selections in a ListBox)

Getting data for multiple selections requires more effort that the example above because we have to actually loop through all of the items in the list in order to see which ones have been selected.

'Loop through every item in the ListBox
For i = 0 To ListBox1.ListCount - 1

    'Check if the item was selected.
    If ListBox1.Selected(i) Then

        'If here, means this item has been selected.

        'Show selected items in a message box.
        MsgBox ListBox1.List(i)

    End If

Next i

This is a For loop in VBA.

ListBox1 is the name of the ListBox.

i is the variable that is used to loop through the items in the ListBox. When referencing an item from within the loop, you use this variable. This is used in the next two explanations in order to get information about the items during the loop.

ListBox1.Selected(i) returns a True or False value that lets you know if the item in the list was selected or not. This is what is used in the IF statement part of the code.

ListBox1.List(i) is how you reference the item from the ListBox while you are looping through the items.

MsgBox ListBox1.List(i) is a simple way for you to see what items have been selected. This is used for illustrative purposes.

In the sample file for this tutorial another line of code is included that will put all of the selected items into Column B in the worksheet. That line of code looks like this (it also goes inside of the For loop):

Range("B" & Rows.Count).End(xlUp).Offset(1).Value = ListBox1.List(i)

Full Code to Put Values into the Worksheet

'Loop through every item in the ListBox
For i = 0 To ListBox1.ListCount - 1

    'Check if the item was selected.
    If ListBox1.Selected(i) Then

        'If here, means this item has been selected.

        'Put all selected items in Column B
        Range("B" & Rows.Count).End(xlUp).Offset(1).Value = ListBox1.List(i)

        'Show selected items in a message box.
        'MsgBox ListBox1.List(i)

    End If

Next i

The message box code was commented-out but left in so it’s easier to see and understand.

Where to Put the Code

The above code, usually, should go inside of the code section for a command button; this allows something to happen with the ListBox selections after the user clicks a button.

In the examples for this tutorial, and the included file, this code is at the top of the section for the Store Input button, named CommandButton2.

You can get to this code section by double-clicking the Store Input button from the form in the VBA window (Alt + F11).

Notes

You don’t have to make two separate code sections for a ListBox to check if it allows for sinlge or multi-selections. You can always use the loop in the second section above and it will work in all cases.

The method for doing something with multiple selections can seem a little tricky, but you only really have to change the name of the ListBox to the name of the one you use and everything should work.

In the attached file, the ListBox is set to allow multiple selections using the Ctrl and Shift keys. This is done with this line at the top of the UserForm_Initialize() event:

ListBox1.MultiSelect = fmMultiSelectExtended

Download the sample file for this tutorial to work with these examples in Excel.

Similar Content on TeachExcel

Getting Data from a UserForm

Tutorial: How to get data from a UserForm in Excel, including from: text inputs (TextBox), list boxe…

Multiple Selections in a ListBox

Tutorial: There are two different kinds of multiple item selections that you can have for a ListBox …

Get Data from the Worksheet into a Macro in Excel

Tutorial: Here, you’ll learn how to get information from the Excel worksheet into a macro so you can…

Macro to get Data from Another Workbook in Excel

Tutorial:
Macro to get data from a workbook, closed or open, over a network or locally on your comp…

Get Data from Separate Workbooks in Excel

Tutorial: How to get data from separate workbooks in Excel. This tutorial includes an example using …

Get Values from a Chart

Macro: This macro will pull the values from a chart in excel and list those values on another spr…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Понравилась статья? Поделить с друзьями:
  • Excel vba защищенный просмотр
  • Excel vba защищенный лист
  • Excel vba защита листа от изменения
  • Excel vba защита кода
  • Excel vba зачеркнутый текст