MyTetra Share
Делитесь знаниями!
VBA Excel. ComboBox (заполнение поля со списком)
Время создания: 31.07.2019 22:38
Раздел: !Закладки - VBA
Запись: xintrea/mytetra_db_adgaver_new/master/base/1544723791oxmmumpltk/text.html на raw.githubusercontent.com

VBA Excel. ComboBox (заполнение поля со списком)

Автор Время не ждёт Опубликовано 14.03.2018 Добавить комментарий к записи VBA Excel. ComboBox (заполнение поля со списком)

Способы заполнения ComboBox данными с помощью кода VBA Excel. Добавление значений в поле со списком методом AddItem, из массива и из диапазона рабочего листа.

  1. Заполнение ComboBox методом AddItem
  2. Заполнение ComboBox значениями из массива
  3. Заполнение ComboBox значениями из ячеек

Заполнение ComboBox методом AddItem

Создайте пользовательскую форму UserForm1 и разместите на ней поле со списком ComboBox1. Используйте метод AddItem для заполнения элемента управления значениями:


1

2

3

4

5

6

7

8

9

10

Sub Test1()

    With UserForm1.ComboBox1

        .AddItem "Кружка"

        .AddItem "Стакан"

        .AddItem "Бокал"

        .AddItem "Пиала"

        .AddItem "Фужер"

    End With

UserForm1.Show

End Sub

Скопируйте код и запустите его выполнение, на открывшейся форме раскройте поле со списком, в результате увидите, что элемент управления ComboBox1 заполнен соответствующими значениями:

Заполнение ComboBox значениями из массива

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


Sub Test2()

    With UserForm1

        .ComboBox1.List = Array("Кружка", "Стакан", "Бокал", "Пиала", "Фужер")

        .Show

    End With

End Sub

Результат выполнения кода будет таким же, как и на предыдущем изображении.

Таким же образом можно использовать не только функцию Array, но и переменную массива, предварительно объявленную и заполненную значениями:


Sub Test3()

    Dim a(4) As String

        a(0) = "Кружка"

        a(1) = "Стакан"

        a(2) = "Бокал"

        a(3) = "Пиала"

        a(4) = "Фужер"

    With UserForm1

        .ComboBox1.List = a

        .Show

    End With

End Sub

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

Для заполнения поля со списком значениями из диапазона ячеек рабочего листа будем использовать свойство комбинированного списка RowSource, предварительно заполнив диапазон "A1:A5" активного листа уже известными значениями:


Sub Test4()

    With UserForm1

        .ComboBox1.RowSource = "A1:A5"

        .Show

    End With

End Sub


Чтобы присвоить элементу управления ComboBox значения из диапазона ячеек любого рабочего листа, добавьте ссылку на него перед наименованием диапазона, например, замените "A1:A5" на "Лист1!A1:A5", и поле со списком будет заполнено значениями ячеек "A1:A5", расположенных на листе с именем "Лист1".

Эти же способы используются и для заполнения значениями элемента управления ListBox.

Иногда возникает необходимость заполнения элементов управления ListBox и ComboBox уникальными значениями из диапазона ячеек с повторяющимся содержимым. Смотрите, как отсортировать уникальные элементы из списка. Опубликовано 14.03.2018 Автор Время не ждёт Рубрики VBA Excel

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования