Innehållsförteckning
Hittills har vi tittat på hur man skapar rullgardinslistor i Excel. Idag ska jag visa hur du skapar en rullgardinslista med flera val i Excel .
Ladda ner övningsboken
Du kan ladda ner arbetsboken här.
Skapa en drop down-lista med flera val.xlsmSteg-för-steg-förfaranden för att skapa en listrista i Excel med flera valmöjligheter
Här har vi ett dataset med en kolumn Bokens namn som innehåller några boknamn. Vårt mål idag är att skapa en rullgardinslista baserad på detta dataset som kan göra flera val. Jag kommer att visa steg-för-steg-förfarandet i nedanstående avsnitt.
STEG 1: Skapa en rullgardinslista med hjälp av datavalidering
För att skapa en rullgardinslista med flera val måste vi först skapa en rullgardinslista. Låt oss gå igenom procedurerna.
- Välj först den cell där du vill skapa rullgardinslistan. Jag har valt Cell D5 .
- Gå sedan till Uppgifter och välj Validering av data från bandet.
- Sedan, från den Validering av data fönstret, välj Lista på Tillåt och skriv in de intervallceller vars data du vill lägga till i listan i avsnittet Källa fält.
- Alternativt kan du klicka på den lilla uppåtriktade pilen i den Källa och välj dataområdet från arbetsbladet.
- Slutligen ser vi en rullgardinslista som skapats i Cell D5 .
Liknande läsning:
- Hur man gör en rullgardinslista i Excel (oberoende och beroende)
- Gör flera val från en rullgardinslista i Excel (3 sätt)
- Hur man skapar beroende Drop Down List i Excel
- Skapa en rullgardinslista i flera kolumner i Excel (3 sätt)
STEG 2: Aktivera Drop-Down-listan för att acceptera flera val med VBA-kod
Vi har redan skapat rullgardinslistan. Nu är det dags att förbereda rullgardinslistan för flera val. Jag kommer att använda 2 VBA koder för att göra det möjligt för listan att acceptera flera val. En kommer att acceptera upprepning av data och en annan kommer inte att acceptera upprepning av data.
Fall 1: VBA-kod för flera val med upprepning
I det här avsnittet kommer jag att visa hur man skapar en rullgardinslista med flera val som tar emot upprepade data.
Låt oss gå igenom förfarandena.
- Tryck först på ALT + F11 för att öppna VBA fönster.
- Välj sedan Utforskare av projekt . också, dubbel - Klicka på på det ark där du vill att uppgiften ska utföras.
- Samtidigt kan en Kod öppnas.
- Skriv sedan följande kod i det fönstret.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" ThenTarget.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Observera: I koddelen ( Om Target.Address = "$D$5" Därefter ) i stället för cellreferens $D$5, skriver du cellreferensen där du har skapat rullgardinslistan. - Till sist återvänder vi till arbetsbladet och kommer att kunna välja flera element i rullgardinslistan med en upprepning av samma element.
Fall 2: VBA-kod för flera val utan upprepning
I det här avsnittet kommer jag att visa hur du skapar en rullgardinslista med flera val som inte kräver upprepning av data.
Låt oss gå igenom förfarandena.
- Tryck först på ALT + F11 för att öppna VBA fönster.
- Välj sedan Utforskare av projekt . också, dubbel - Klicka på på det ark där du vill att uppgiften ska utföras.
- Samtidigt kan en Kod visas.
- Därefter skriver du följande kod i det fönstret.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue =Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Observera: I koddelen ( Om Target.Address = "$D$5" Därefter ) i stället för cellreferens $D$5, skriver du cellreferensen där du har skapat rullgardinslistan. - Till sist återvänder vi till arbetsbladet och kommer att kunna välja flera element i rullgardinslistan utan att samma element upprepas.
Slutsats
Med den här metoden kan du skapa en rullgardinslista i Excel med flera valmöjligheter. Har du några frågor? Låt oss gärna veta det i kommentarsfältet. Besök vår Webbplats för ExcelWIKI för fler artiklar om Excel .