Indholdsfortegnelse
Når vi arbejder med et stort datasæt, er det ofte svært at hente en selektiv værdi ud af det. Desuden kan man ikke vælge mere end flere oplysninger på samme tid. I dette tilfælde, ListBox er en meget nyttig løsning i Excel . men processen med at skabe denne ListBox er en smule vanskelig. Derfor vil vi i denne artikel lære, hvordan man opretter et multiselekt ListBox i excel med nogle enkle trin.
Download arbejdsbog til øvelser
Hent prøvefilen til øvelse.
Multi Select ListBox.xlsmTrin-for-trin procedurer til at oprette Multi Select ListBox i Excel
For at gøre processen lettere har vi opdelt den i 8 trin for bedre at forstå det. Så lad os uden yderligere forsinkelse gå i gang med nedenstående trin for at se, hvordan vi kan oprette et multiselect ListBox i Excel.
Trin 1: Opret Excel-tabellen fra datasættet
I første omgang skal vi forberede et eksempeldatasæt og konvertere det til en tabel. Følg nedenstående trin for at gøre dette.
- Først oprettes et datasæt med oplysningerne om 10 bynavne og deres Befolkning i alt af den USA til 1, juli i den Celleområde B5:C14 .
- Klik nu på en vilkårlig celle i datasættet, og vælg Tabel fra den Indsæt fanebladet.
- Derefter vil du se Opret tabel vindue, som automatisk vælger det celleområde, der skal bruges til at oprette en tabel.
- I dette vindue markeres det markerede felt Min tabel har overskrifter feltet, og tryk på OK .
- Som et resultat vil du se, at datasættet konverteres til en tabel.
- Sammen med den kan du finde tabellen i Bordnavn boksen under den Borddesign fanen
- Du kan ændre tabellens navn efter dine ønsker.
Læs mere: Sådan oprettes afhængig Drop Down List i Excel
Trin 2: Navngiv datasætteliste fra Name Manager
Nu skal vi navngive hver kategori af celleinterval fra tabellen. Gennemgå trinene for at gøre dette.
- Først skal du vælge en celle fra Kolonne B i tabellen.
- Derefter skal du gå til Formler og vælg Definer navn .
- Herefter vil du se Nyt navn dialogboksen.
- I denne dialogboks skal du angive et navn i overensstemmelse med den valgte kolonneoverskrift i Navn boks.
- Klik derefter på Henviser til i det samme vindue.
- Sæt derefter markøren over overskriften, og der vises en sort pil.
- Tryk derefter på venstre-klik for at vælge den Celleområde B5:B14 .
- Som et resultat heraf vil du se listen over navne sammen med tabellens navn i Henviser til feltet, og tryk på OK .
- Følg samme procedure for den Celleområde C5:C14 også.
- Endelig vil du se navnene i Navneboks i øverste venstre hjørne af arbejdsbogen.
Trin 3: Opret drop-down-liste med datavalidering
På dette trin vil vi oprette en rulleliste ud fra de navngivne intervaller med datavalidering. Dette er den vigtigste del af oprettelsen af en ListBox Vi vil oprette dette i et andet regneark i arbejdsbogen. Men du kan også gøre det i det samme regneark. Lad os se processen nedenfor.
- I begyndelsen skal du vælge nogle celler fra tabellen, hvor du vil anvende Validering af data .
- Derefter skal du gå til Data og vælg Validering af data i den Dataværktøjer sektion.
- Dernæst, i den Indstillinger skal du vælge Liste i den Tillad boks.
- Desuden har mærket kontrolleret den Ignorer blank og Rullemenuen i cellen kasser.
- Klik herefter på Kilde feltet i dette vindue og tryk på F3 på dit tastatur.
- Som følge heraf vil du se Indsæt navn dialogboksen med navnelisten.
- Her skal du vælge Bynavne fra listen, og tryk på OK .
- Derefter vil du se den første listes navn blive vist i kildefeltet.
- Til sidst skal du trykke på OK og anvender den samme fremgangsmåde for den anden navneliste.
- Endelig vil du se, at Validering af data er aktiveret på de valgte celler.
Trin 4: Indsæt VBA-kode i det validerede regneark
Nu kommer den afgørende del med at indsætte VBA kode til at oprette en ListBox Følgende er processen for dette.
- Højreklik først på det validerede regneark, og vælg Se kode fra den Kontekstmenu .
- Indsæt derefter denne kode på siden.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String Dim strList As String On Error Resume Next Application.EnableEvents = False Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If rngDV Is Nothing Then GoTo exitHandler If Not Intersect(Target, rngDV) Is Nothing Then If Target.Validation.Type = 3Then strList = Target.Validation.Formula1 strList = Right(strList, Len(strList) - 1) strDVList = strList frmDVList.Show End If End If End If exitHandler: Application.EnableEvents = True End Sub
- Derefter skal du gå til Indsæt og vælg Modul .
- På dette tidspunkt skal arbejdsbogens navn være valgt i Projektobjekt vindue.
- Omdøb derefter modulet som modSettings og indsæt denne kode.
Option Explicit Global strDVList As String
Tak til Kontekster for at stille koderne til rådighed.
Trin 5: Opret UserForm med Listbox & Knapper
På dette tidspunkt opretter vi en UserForm for arbejdsbogen sammen med en ListBox og nogle Kommandoknapper Følg nedenstående fremgangsmåde for at gøre dette.
- Først skal du vælge arbejdsmappen i Projekt-VBAProjekt i vinduet i Visual Basic redaktør.
- Derefter skal du gå til Indsæt og vælg UserForm .
- Som et resultat heraf får du den UserForm grænseflade som denne.
- Sammen med dette får du også den Værktøjskasse vindue.
- Herfra skal du trække ListBox til den UserForm .
- Derefter er det ListBox Du kan justere størrelsen ved at trække i boksens kanter.
- Træk derefter den CommanButton to gange til UserForm også for at oprette 2 knapper til betjening.
- Til sidst ser det endelige output således ud.
Trin 6: Ændre indstillinger for egenskaber
I denne fase vil vi foretage nogle ændringer i egenskaberne for hver enkelt komponent i ListBox .
- I begyndelsen skal du trykke på F4 på den Visual Basic editor for at åbne den Vindue med egenskaber .
- Vælg derefter den UserForm og ændre den Navn og Billedtekst på denne måde.
- Vælg derefter ListBox og ændre den Navn alt efter dine præferencer.
- Derudover skal du ændre typen af ListStyle , MultiSelect og SpecialEffect som vist på billedet nedenfor.
- Vælg nu den første kommandoknap, og lav følgende ændringer i egenskaberne.
- Derudover skal du også redigere egenskaberne for den anden kommandoknap.
Trin 7: Anvend VBA-kode på UserForm
På dette stadium vil vi anvende VBA koder til hver af komponenterne i den UserForm Lad os se, hvordan det fungerer.
- Først skal du vælge UserForm og gå til den Se for at vælge Kode .
- Indsæt derefter denne kode på den tomme side. Den vil automatisk køre, når UserForm er åbnet.
Private Sub UserForm_Initialize() Me.lstDV.RowSource = strDVList End Sub
- Gå herefter tilbage til UserForm grænseflade ved at klikke på Objekt på den Se fanebladet.
- Følg nu processen for at indsætte denne kode for OK knap.
Private Sub cmdOK_Click() Dim strSelItems As String Dim lCountList As Long Dim strSep As String Dim strAdd As String Dim bDup As Boolean On Error Resume Next strSep = ", " With Me.lstDV For lCountList = 0 To .ListCount - 1 If .Selected(lCountList) Then strAdd = .List(lCountList) Else strAdd = "" End If If strSelItems = "" Then strSelItems = strAdd Else If strAdd "" Then strSelItems = strSelItems_ & strSep & strAdd End If End If End If Next lCountList End With With With ActiveCell If .Value "" Then .Value = ActiveCell.Value _ & strSep & strSelItems Else .Value = strSelItems End If End If End With Unload Me End Sub
- Sammen med dette skal du skrive denne kode for Luk knappen ved hjælp af den samme proces.
Private Sub cmdClose_Click() Aflast mig End Sub
- Til sidst skal du trykke på Ctrl + S for at gemme det og lukke vinduet.
Tak til Kontekster for at hjælpe med koderne.
Trin 8: Multi Select fra ListBox
Endelig har vi med succes oprettet en ListBox for flere valg. For at kontrollere, om koden virker eller ej, skal du blot gennemgå disse trin.
- Først skal du vælge Celle B5 hvor vi anvendte Validering af data .
- Lige efter dette blev der lige efter en ListBox vil dukke op og beordre Vælg emne fra listen .
- I dette vindue kan du vælge mere end ét navn fra listen.
- Derefter skal du trykke på OK .
- Endelig har du med succes foretaget et flersidet valg fra ListBox og hvert navn er adskilt af et Komma ( , ).
Ting at huske
- Navngivne intervaller vil ikke oprette en Validering af data reglen, hvis de er indtastet som en cellehenvisning eller med afgrænsere.
- Global variabel anvendes for både UserForm og Arbejdsark VBA kode. Ethvert aktivt celle navn passerer oprindeligt koden strDVList til et midlertidigt område og bruges derefter som en RowSource for den ListBox når en bruger åbner UserForm .
- Du kan kombinere flere intervaller i et enkelt navn for at gøre det lettere at vælge.
Konklusion
Det var alt for i dag. Jeg håber, at disse lange, men enkle trin til, hvordan man oprette en multi select ListBox i excel har gjort emnet lidt lettere for dig. Lad os høre din feedback i kommentarfeltet. Følg ExcelWIKI for flere artikler som denne.