Зависимые поля со списком Excel VBA - простые макросы Excel

Содержание

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

Пользователь выбирает Животные из раскрывающегося списка. В результате пользователь может выбрать животное из второго раскрывающегося списка.

Пользователь выбирает Спорт из раскрывающегося списка. В результате пользователь может выбрать вид спорта из второго раскрывающегося списка.

Чтобы создать эту пользовательскую форму, выполните следующие шаги.

1. Откройте редактор Visual Basic. Если обозреватель проекта не отображается, щелкните «Просмотр», «Обозреватель проекта».

2. Щелкните Вставить, Пользовательская форма. Если панель инструментов не появляется автоматически, щелкните «Просмотр», «Панель инструментов». Ваш экран должен быть настроен, как показано ниже.

3. Добавьте поля со списком (первое слева, второе справа) и командную кнопку. Как только это будет выполнено, результат должен соответствовать изображению пользовательской формы, показанному ранее. Например, создайте элемент управления полем со списком, щелкнув ComboBox на панели инструментов. Затем вы можете перетащить поле со списком в пользовательскую форму.

4. Вы можете изменить имена и заголовки элементов управления. Имена используются в коде Excel VBA. Подписи - это те, которые появляются на вашем экране. Рекомендуется изменять имена элементов управления, но в этом нет необходимости, потому что в этом примере у нас есть только несколько элементов управления. Чтобы изменить заголовок пользовательской формы и командной кнопки, щелкните «Вид», «Окно свойств» и щелкните каждый элемент управления.

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

Частная подпрограмма CommandButton1_Click ()
UserForm1.Show
Конец подписки

Теперь мы собираемся создать Sub UserForm_Initialize. Когда вы используете метод Show для пользовательской формы, эта подпрограмма будет выполнена автоматически.

6. Откройте редактор Visual Basic.

7. В проводнике проекта щелкните правой кнопкой мыши UserForm1 и выберите команду Просмотреть код.

8. Выберите Userform в левом раскрывающемся списке. В правом раскрывающемся списке выберите «Инициализировать».

9. Добавьте следующие строки кода:

Частная подписка UserForm_Initialize ()
С ComboBox1
.AddItem "Животные"
.AddItem "Спорт"
.AddItem "Еда"
Конец с
Конец подписки

Объяснение: Эти строки кода заполняют первое поле со списком.

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

10. В проводнике проекта дважды щелкните UserForm1.

11. Дважды щелкните первое поле со списком.

12. Добавьте следующие строки кода:

Частный суб ComboBox1_Change ()
Тусклый индекс как целое число
index = ComboBox1.ListIndex
ComboBox2.Clear
Выбрать индекс дела
Случай Is = 0
С ComboBox2
.AddItem "Собака"
.AddItem "Кошка"
.AddItem "Лошадь"
Конец с
Случай Is = 1
С ComboBox2
.AddItem "Теннис"
.AddItem "Плавание"
.AddItem "Баскетбол"
Конец с
Случай Is = 2
С ComboBox2
.AddItem "Блины"
.AddItem "Пицца"
.AddItem "Китайский"
Конец с
Конец Выбрать
Конец подписки

Объяснение: Excel VBA использует значение индекса переменной для проверки каждого последующего оператора Case, чтобы увидеть, какими элементами следует заполнить второе поле со списком. Пройдите через нашу программу Select Case, чтобы узнать больше о структуре Select Case.

13. Дважды щелкните кнопку «Импорт».

14. Добавьте следующую строку кода:

Частная подпрограмма CommandButton1_Click ()
Диапазон ("A1"). Значение = ComboBox2.Value
Конец подписки

Результат:

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

wave wave wave wave wave