Note: The other languages of the website are Google-translated. Back to English

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

Fliken Office Aktiverar flikredigering och surfning i Office, och gör ditt arbete mycket enklare ...
Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%
  • Återanvänd allt: Lägg till de mest använda eller komplexa formlerna, diagrammen och allt annat till dina favoriter och återanvänd dem snabbt i framtiden.
  • Mer än 20 textfunktioner: Extrahera nummer från textsträng; Extrahera eller ta bort en del av texterna; Konvertera siffror och valutor till engelska ord.
  • Sammanfoga verktyg: Flera arbetsböcker och ark till en; Slå ihop flera celler / rader / kolumner utan att förlora data; Slå samman duplicerade rader och summa.
  • Dela verktyg: Dela data i flera ark baserat på värde; En arbetsbok för flera Excel-, PDF- eller CSV-filer; En kolumn till flera kolumner.
  • Klistra över Dolda / filtrerade rader; Räkna och summa av bakgrundsfärg; Skicka personliga e-postmeddelanden till flera mottagare i bulk.
  • Superfilter: Skapa avancerade filterscheman och tillämpas på alla ark; Svart per vecka, dag, frekvens och mer; Filter med fetstil, formler, kommentarer ...
  • Mer än 300 kraftfulla funktioner; Fungerar med Office 2007-2021 och 365; Stöder alla språk; Enkel implementering i ditt företag eller organisation.

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 Fastigheter från snabbmenyn. I Fastigheter ä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 Fastigheter 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:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
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!
officetab botten
Sortera kommentarer efter
Kommentarer (1)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hi

Vad syftar "Jag" på i koden och hur ändras koden om jag har en MultiSelect listbox?

Hälsningar
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL