Hoppa till huvudinnehåll

Hur skapar man dynamiska kaskadlistor i Excel?

Du kanske vet hur du skapar en rullgardinsmeny för kaskad validering i Excel. Hur skapar jag dock dynamiska kaskadlistor i Excel? Den här artikeln introducerar en VBA-metod för att få ner den.

Skapa dynamiska kaskadlistor med VBA-kod


Skapa dynamiska kaskadlistor med VBA-kod

Som nedanstående skärmdump visas måste du skapa en överordnad listruta som innehåller de unika värdena i kolumnen Dryck och visa alla motsvarande värden i den andra listrutan baserat på val i överordnad listruta. Följande VBA-kod hjälper dig att uppnå det. Gör så här.

1. För det första måste du extrahera alla unika värden från kolumnen Dryck. Välj en tom cell, ange matrisformel =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") i Formula Bar, och tryck sedan på ctrl + shift + ange nyckel. Dra sedan i Fyll handtaget för att få alla unika värden. Se skärmdump:

Anmärkningar: I formeln, $A$2:$A$11 är det intervall du kommer att extrahera unika värden från. J1 är cellen ovan där din formel finns.

Tips: Om formeln är för svår att komma ihåg och hantera, kommer Välj Duplicera och unika celler nytta av Kutools för Excel kommer att vara ett bra val för dig att snabbt extrahera alla unika värden från en kolumn.

Välj kolumnen innehåller unika värden du kommer att extrahera från. Aktivera sedan verktyget genom att klicka Kutools > Välja > Välj Duplicera och unika celler. I Välj Duplicera och unika celler dialogrutan väljer du Alla unika (inklusive första dubbletter) alternativet och klicka på OK knapp. Sedan väljs alla unika värden i kolumnen. Kopiera och klistra in dem på en ny plats. Se skärmdump:

Kutools för Excel: med mer än 200 praktiska Excel-tillägg, gratis att prova utan begränsning på 60 dagar. Ladda ner och testa gratis nu!

2. Infoga två listrutor separat genom att klicka Utvecklare > Insert > Listbox (ActiveX Control). Se skärmdump:

3. Högerklicka på den överordnade listrutan och välj Våra Bostäder från snabbmenyn. I Våra Bostäder ändra dialogrutan (Namn) fält till Dryck eller annat namn som du behöver, ange cellområdet innehåller de extraherade unika värdena i ListFillRange fältet och stäng dialogrutan.

4. Upprepa steg 3 för att ändra den andra listrutan (Namn) fält till artikel i Våra Bostäder dialog ruta.

5. Högerklicka på arkfliken och välj Visa kod från högerklickmenyn. Kopiera sedan VBA-koden nedan till kodfönstret. Se skärmdump:

VBA-kod: Skapa dynamiska kaskadlistor i 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

Anmärkningar: I koden Dryck och artikel finns namnen på två listrutor, ändra dem till dina egna namn.

6. tryck på andra + Q för att stänga Microsoft Visual Basic för applikationer fönster.

7. Stäng av designläget genom att klicka på Utvecklare > Designläge.

Från och med nu, när du väljer någon form av dryck som t.ex. kaffe i föräldralistan, kommer alla kaffeprodukter att visas i den andra. Välj Te eller Vin visar bara te- eller vinartiklarna i den andra listrutan. Se skärmdump:


Relaterade artiklar:

Bästa kontorsproduktivitetsverktyg

Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50 + Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

kte-flik 201905


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
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