Перейти к содержимому

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

Author: Siluvia Last Modified: 2025-08-07

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

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


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

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

dynamic cascading list boxes

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

list all unique values with formula

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

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

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

select unique values with kutools

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

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

click List Box from Developer tab

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

specify the options in the Properties pane

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

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

Примечания: В коде Напиток и Товар являются именами двух списков, измените их на свои собственные имена.

click View Code to pate the code into the module

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

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

Теперь, когда вы выбираете любой вид напитка, например Кофе, в родительском списке, все кофейные товары будут отображаться во втором списке. При выборе Чая или Вина будут отображаться только чайные или винные товары во втором списке. Смотрите скриншот:

dynamic cascading list boxes are created



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

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

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–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% и сократите сотни кликов мышью ежедневно!