Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як створити динамічні каскадні списки в Excel?

Можливо, ви знаєте, як створити розкривний список каскадної перевірки в Excel. Однак як створити динамічні каскадні списки в Excel? Ця стаття представляє метод VBA для його зниження.

Створюйте динамічні каскадні списки з кодом VBA

Вкладка Office Увімкніть редагування та перегляд вкладок в Office та значно спростіть свою роботу ...
Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%
  • Повторне використання будь-чого: Додайте найбільш уживані або складні формули, діаграми та будь-що інше до вибраного та швидко використовуйте їх у майбутньому.
  • Більше 20 функцій тексту: Витяг номера з текстового рядка; Витяг або видалення частини текстів; Перетворення чисел і валют в англійські слова.
  • Злиття інструментів: Кілька робочих книжок та аркушів в одне ціле; Об’єднати кілька клітинок / рядків / стовпців без втрати даних; Об’єднати повторювані рядки та суму.
  • Розділити інструменти: Розділити дані на кілька аркушів на основі значення; Одна робоча книга до декількох файлів Excel, PDF або CSV; Один стовпець на кілька стовпців.
  • Пропустити вставку Приховані / відфільтровані рядки; Граф і сума за кольором тла; Надіслати персоналізовані електронні листи кільком одержувачам масово.
  • Суперфільтр: Створюйте розширені схеми фільтрів і застосовуйте їх до будь-яких аркушів; сортувати за тижнями, днями, періодичністю тощо; фільтр жирним шрифтом, формули, коментар ...
  • Понад 300 потужних функцій; Працює з Office 2007-2019 та 365; Підтримує всі мови; Простота розгортання на вашому підприємстві чи в організації.

Створюйте динамічні каскадні списки з кодом VBA


Як показано на знімку екрана нижче, вам потрібно створити батьківський вікно списку, що містить унікальні значення стовпця Drink, і відобразити всі відповідні значення у другому полі списку на основі вибору в полі батьківського списку. Наступний код VBA допомагає вам його досягти. Будь ласка, виконайте наступне.

1. По-перше, вам потрібно витягти всі унікальні значення зі стовпця Drink. Виділіть порожню комірку, введіть формулу масиву =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") в Бар Формула, а потім натисніть Ctrl + зсув + вводити ключ. Потім перетягніть Ручка заповнення щоб отримати всі унікальні значення. Дивіться знімок екрана:

примітки: У формулі, $A$2:$A$11 - діапазон, з якого ви отримаєте унікальні значення. J1 - клітинка вгорі, де знаходиться ваша формула.

Чайові: Якщо формулу занадто важко запам'ятати та обробити, Виберіть Повторювані та унікальні комірки корисність Kutools для Excel буде гарним вибором для швидкого вилучення всіх унікальних значень зі стовпця.

Будь ласка, виберіть стовпець, що містить унікальні значення, з яких ви отримаєте. Потім увімкніть утиліту, клацнувши Кутулс > вибрати > Виберіть Повторювані та унікальні комірки, в Виберіть Повторювані та унікальні комірки діалоговому вікні, виберіть Усі унікальні (Включаючи 1-й дублікат) та натисніть кнопку OK кнопку. Потім у стовпці вибираються всі унікальні значення. Скопіюйте та вставте їх у нове місце. Дивіться знімок екрана:

Kutools для Excel: з більш ніж 200 зручними надбудовами Excel, спробуйте безкоштовно без обмежень протягом 60 днів. Завантажте та безкоштовно пробну версію зараз!

2. Вставте два поля списку окремо, клацнувши Розробник > Insert > Вікно списку (елемент керування ActiveX). Дивіться знімок екрана:

3. Клацніть правою кнопкою миші поле батьківського списку та виберіть властивості з контекстного меню. В властивості діалогове вікно, змініть (Ім'я) поле до напій або інше ім'я, яке вам потрібно, введіть діапазон комірок, що містить вилучені унікальні значення в ListFillRange поле та закрийте діалогове вікно.

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

примітки: У коді Drink and Item є назви двох списків, змініть їх на власні імена.

6 Натисніть кнопку інший + Q клавіші, щоб закрити Microsoft Visual Basic для додатків вікна.

7. Вимкніть режим дизайну, клацнувши Розробник > Режим дизайну.

Відтепер, при виборі будь-якого напою, такого як Кава, у полі батьківського списку всі предмети кави відображатимуться у другому. Виберіть "Чай або вино" відображатиме лише елементи чаю чи вина у другому полі списку. Дивіться знімок екрана:


Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Guest · 1 years ago
    Hi

    What does "Me" refer to in the code and how will the code change if I have a MultiSelect list box?

    Regards