VBA Listbox

I VBA kan du oprette en Listbox hvor en bruger kan vælge en af ​​de angivne muligheder. Listbox bruges ofte i brugerformularer, men kan også bruges i et regneark. I denne vejledning lærer du, hvordan du opretter, udfylder og sletter en listeboks. Du vil også se, hvordan du får et brugervalg i VBA og bruger det i kode.

Hvis du vil lære at oprette en ComboBox, skal du klikke her: VBA ComboBox

Hvis du vil lære at oprette en afkrydsningsfelt, skal du klikke her: VBA -afkrydsningsfelt

Opret en listeboks

For at indsætte en listeboks i regnearket skal du gå til Fanen Udvikler, klik Indsæt og vælg under ActiveX Controls Listeboks:

Billede 1. Indsæt en listeboks i regnearket

Når du vælger den listeboks, du har indsat, kan du klikke på Ejendomme under Fanen Udvikler:

Billede 2. Skift Listeboksegenskaber

Her kan du indstille forskellige egenskaber for Listbox. I begyndelsen ændrede vi attributten Navn til lstListBox. Nu kan vi bruge Listbox med dette navn i VBA -kode.

Befolk en Listbox i VBA -kode

Først skal vi udfylde Listbox med værdier. I de fleste tilfælde skal en listeboks udfyldes, når projektmappen åbnes. På grund af dette skal vi sætte en kode til at udfylde Listbox i objektet Arbejdsbog, procedure Åben. Denne procedure udføres hver gang en bruger åbner projektmappen. Her er koden:

123456789 Med Sheet1.lstListBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Afslut med

Som du kan se på billede 3, udfyldte vi vores Listbox med 5 navne (John, Michael, Jennifer, Lilly og Robert):

Billede 3. Populer Listbox i VBA

Befolk en listeboks fra et celleområde

En anden mulig måde at udfylde en Listbox på er at lade en bruger gøre det. En listeboks kan forbindes til cellernes rækkevidde. Hver gang en bruger indtaster en ny værdi i celleområdet, opdateres Listbox med denne værdi.

Hvis du vil aktivere dette, skal du gå til Ejendomme i ListBox og indstil attributten ListFillRange:

Billede 4. Udfyld listeboksen fra cellerne

Vi forbandt vores Listbox med serien E2: E5, hvor vi satte navne, vi ønsker (Nathan, Harry, George, Roberta). Som et resultat er Listbox nu udfyldt med disse navne.

Få et valgt element i en listeboks i VBA

Formålet med en Listbox er at få brugernes valg. For at hente en værdi, der er valgt af en bruger, skal du bruge denne kode:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.lstListBox.Value

Brugervalget er i attributten Værdi af Sheet1.lstListbox objekt. Denne værdi tildeles variablen strSelectedItem:

Billede 5. Hent en valgt værdi fra Listbox i VBA

Vi valgte Harry i listeboksen og udførte proceduren. Som du kan se på billede 5, er værdien af strSelectedItem er Harry, som er den værdi, vi valgte. Desuden kan du behandle denne variabel i koden.

Ryd en listeboks

For at rydde en Listbox i VBA skal du bruge Klar metode til Sheet1.lstListBox objekt. Det sletter alle elementerne fra listeboksen. Her er koden:

1 Sheet1.lstListBox.Clear

Når vi udfører koden, får vi den tomme Listbox:

Billede 6. Ryd listeboksen

Brug en listeboks i en brugerform

Som vi nævnte, bruges Listbox oftest i brugerformer. For at forklare, hvordan du kan gøre det, indsætter vi først en brugerformular. I VBA-editor, højreklik på modulnavn, klik på Indsæt og vælg UserForm:

Billede 7. Indsæt en brugerformular

For at få vist kontrolelementer til indsættelse skal du aktivere Værktøjskasse. For at gøre dette skal du klikke påVærktøjskasse ikon på værktøjslinjen. Derefter får du vinduerne med alle tilgængelige kontrolelementer. Du kan klikke på ListBox for at oprette den i brugerformularen.

Billede 8. Indsæt en listeboks i brugerformularen

Vi vil navngive ComboBox cmbComboBox. For at udfylde det med værdier skal vi indsætte følgende kode i metoden Initialiser af objektet UserForm:

12345678910111213 Privat underbrugerForm_Initialize ()Med UserForm1.lstListBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Afslut medAfslut Sub

Denne kode udløses hver gang en bruger kører brugerformularen og udfylder Listbox med disse 5 navne:

Billede 9. Listeboksen med værdier i brugerformularen

Hvis du vil have valgt værdi fra ComboBox, skal du bruge den samme logik for Combobox i et regneark, som er forklaret tidligere i artiklen.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave