Přejít k hlavnímu obsahu

Jak vytvořit dynamické kaskádové seznamy v aplikaci Excel?

Možná víte, jak vytvořit rozevírací seznam kaskádového ověření v aplikaci Excel. Jak však vytvořit dynamické kaskádové seznamy v aplikaci Excel? Tento článek zavádí metodu VBA, jak ji snížit.

Vytvořte dynamické kaskádové seznamy s kódem VBA


Vytvořte dynamické kaskádové seznamy s kódem VBA

Jak je ukázáno níže, je třeba vytvořit nadřazený seznam obsahující jedinečné hodnoty sloupce Nápoj a zobrazit všechny odpovídající hodnoty ve druhém seznamu na základě výběru v nadřazeném seznamu. Následující kód VBA vám pomůže dosáhnout. Postupujte prosím následovně.

1. Nejprve musíte extrahovat všechny jedinečné hodnoty ze sloupce Nápoj. Vyberte prázdnou buňku, zadejte vzorec pole =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") do Formula Bar, a poté stiskněte tlačítko Ctrl + směna + vstoupit klíč. Poté přetáhněte ikonu Naplňte rukojeť získat všechny jedinečné hodnoty. Viz screenshot:

Poznámka: Ve vzorci $A$2:$A$11 je rozsah, ze kterého extrahujete jedinečné hodnoty. J1 je buňka nad místem, kde se nachází váš vzorec.

Tip: Pokud je vzorec příliš těžký na zapamatování a zvládnutí, použije se Vyberte Duplikovat a jedinečné buňky užitečnost Kutools pro Excel bude pro vás dobrá volba pro rychlé extrahování všech jedinečných hodnot ze sloupce.

Vyberte prosím sloupec obsahující jedinečné hodnoty, ze kterých budete extrahovat. Poté povolte nástroj kliknutím Kutools > vybrat > Vyberte Duplikovat a jedinečné buňky. V Vyberte Duplikovat a jedinečné buňky dialogové okno vyberte Všechny jedinečné (včetně 1. duplikátů) a klepněte na tlačítko OK knoflík. Poté jsou ve sloupci vybrány všechny jedinečné hodnoty. Zkopírujte je a vložte na nové místo. Viz screenshot:

Kutools pro Excel: s více než 200 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 60 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!

2. Klepnutím vložte dvě seznamy samostatně Vývojka > Vložit > Seznam (ovládací prvek ActiveX). Viz snímek obrazovky:

3. Klikněte pravým tlačítkem na nadřazené seznamové pole a vyberte Nemovitosti z kontextové nabídky. V Nemovitosti v dialogovém okně změňte (Jméno) pole do Napít se nebo jiný název, jak potřebujete, zadejte rozsah buněk obsahující extrahované jedinečné hodnoty do souboru ListFillRange pole a zavřete dialog.

4. Opakujte krok 3 a změňte druhý seznam (Jméno) pole do položky v Nemovitosti dialogové okno.

5. Klikněte pravým tlačítkem na kartu listu a vyberte Zobrazit kód z nabídky pravého kliknutí. Poté zkopírujte níže uvedený kód VBA do okna Kód. Viz screenshot:

Kód VBA: Vytvářejte dynamické kaskádové seznamy v aplikaci 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

Poznámky: V kódu Nápoj a Položka jsou názvy dvou seznamů, změňte je na své vlastní názvy.

6. zmáčkni Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace okno.

7. Vypněte návrhový režim kliknutím Vývojka > Režim návrhu.

Od této chvíle se při výběru jakéhokoli druhu nápoje, jako je káva, v nadřazeném seznamu zobrazí všechny položky kávy ve druhém. Výběrem možnosti Čaj nebo víno se ve druhém seznamu zobrazí pouze položky z čaje nebo vína. Viz screenshot:


Související články:

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi

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

Regards
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations