KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как создать динамические каскадные выпадающие списки в Excel?

АвторSiluviaДата изменения

Возможно, вы уже умеете создавать каскадные раскрывающиеся списки с помощью проверки данных в Excel. Но знаете ли вы, как сделать динамические каскадные списки? В этой статье мы расскажем, как решить эту задачу с помощью VBA.

Создание динамических каскадных полей со списком с помощью кода VBA


Создание динамических каскадных полей со списком с помощью кода VBA

Как показано на снимке экрана ниже, создайте родительское поле со списком, заполненное уникальными значениями из столбца «Напиток», и настройте второе поле со списком так, чтобы оно отображало соответствующие значения в зависимости от выбора в родительском поле. Приведённый ниже код VBA поможет вам реализовать эту функциональность. Выполните следующие действия.

динамические каскадные списки

1. Сначала извлеките все уникальные значения из столбца «Напиток». Выберите пустую ячейку, введите в строку формул массивную формулу =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),«»), затем нажмите клавиши Ctrl + Shift + Enter. После этого перетащите маркер заполнения, чтобы получить все уникальные значения. См. снимок экрана:

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

Примечание: в формуле $A$2:$A$11 — это диапазон, из которого будут извлечены уникальные значения. J1 — ячейка, расположенная непосредственно над ячейкой с формулой.

Совет: если формулу сложно запомнить и применять, воспользуйтесь функцией Выбрать дубликаты/уникальные ячейки из набора инструментов Kutools для Excel, чтобы быстро извлечь все уникальные значения из столбца.

Выберите столбец с уникальными значениями, которые нужно извлечь. Затем активируйте функцию, последовательно выбрав Kutools > Выделить > Выбрать дубликаты/уникальные ячейки. В открывшемся диалоговом окне Выбрать дубликаты/уникальные ячейки отметьте опцию Уникальные значения (включая первый дубликат) и нажмите кнопку ОК. После этого все уникальные значения в столбце будут выделены — просто скопируйте их и вставьте в нужное место. См. снимок экрана:

выбор уникальных значений с помощью Kutools

Kutools для Excel: более чем 200 удобных надстроек для Excel, бесплатная пробная версия без ограничений на 60 дней.Скачайте и начните бесплатный пробный период прямо сейчас!

2. Вставьте два поля со списком по отдельности, последовательно выбрав Разработчик > Вставить > Поле со списком (элемент управления ActiveX). См. снимок экрана:

нажмите «Поле со списком» на вкладке «Разработчик»

3. Щёлкните правой кнопкой мыши родительское поле со списком и выберите в контекстном меню пункт Свойства. В диалоговом окне Свойства измените значение поля (Имя) на Drink или другое нужное имя, укажите диапазон ячеек с извлечёнными уникальными значениями в поле ListFillRange и закройте диалоговое окно.

укажите параметры на панели «Свойства»

4. Повторите шаг 3, чтобы изменить имя второго поля со списком на «Item» в поле (Имя) в диалоговом окне Свойства.

5. Щёлкните правой кнопкой мыши ярлык листа и выберите в контекстном меню Просмотреть код. Затем скопируйте приведённый ниже код VBA в окно кода. См. снимок экрана:

Код VBA: создание динамических каскадных полей со списком в Excel

Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
    Dim I, xRows As Long
    Dim xRg As Range
    Dim xRegStr As String
    Application.ScreenUpdating = False
    xRegStr = Me.Drink.Text
    Set xRg = Range("A2:A11")
    xRows = xRg.Rows.Count
    If xRegStr <> xPreStr Then
    Me.Item.Clear
   'Me.OtherListBoxName.Clear
    Set xRg = xRg(1)
    For I = 1 To xRows
        If xRg.Offset(I - 1).Value = xRegStr Then
            Me.Item.AddItem xRg.Offset(I - 1, 1).Value
            'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
        End If
    Next
    xPreStr = xRegStr
    End If
    Application.ScreenUpdating = True
End Sub

Примечание: в коде Drink и Item — это имена двух полей со списком; замените их на свои.

нажмите «Просмотреть код», чтобы вставить код в модуль

6. Нажмите клавиши Alt+Q, чтобы закрыть окно Microsoft Visual Basic для приложений.

7. Отключите режим конструктора, последовательно выбрав Разработчик > Режим конструктора.

Теперь при выборе любого напитка — например, Кофе — во втором поле со списком автоматически отобразятся все соответствующие кофейные товары. Если выбрать Чай или Вино, во втором поле появятся только товары чая или вина соответственно. См. снимок экрана:

динамические каскадные списки созданы



Связанные статьи:

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек