VBA ComboBox

Kombinationsbokse tillade brugere at vælge en mulighed fra en rullemenu. Kombinationsbokse kan oprettes i VBA UserForms eller med et Excel -regneark. I denne vejledning lærer du, hvordan du opretter og manipulerer ComboBoxes i VBA og i Excel -regneark.

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

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

Opret en ComboBox i Excel -regneark

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

Billede 1. Indsæt en kombinationsboks i regnearket

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

Billede 2. Skift ComboBox -egenskaber

Her kan du indstille forskellige egenskaber for ComboBox. For at starte ændrede vi attributten Navn til cmbComboBox. Nu kan vi bruge ComboBox med dette navn i VBA -kode.

Fyld en ComboBox i VBA -kode

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

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

Når du klikker på rullemenuen, får du 5 navne at vælge imellem (John, Michael, Jennifer, Lilly og Robert):

Billede 3. Befolk ComboBox i VBA

Befolk en kombinationsboks fra et celleområde

En anden mulig måde at udfylde en ComboBox på er at lade en bruger gøre det. En ComboBox kan kobles til cellernes rækkevidde. I denne tilgang, hver gang en bruger indtaster en ny værdi i celleområdet, opdateres ComboBox med denne værdi.

Hvis du vil aktivere dette, skal du gå til Ejendomme i ComboBox og indstil attributten ListFillRange til celleområdet (i vores tilfælde E2: E5):

Billede 4. Udfyld ComboBox fra cellens område

Vi forbandt vores ComboBox med serien E2: E5, hvor vi satte navne, vi ønsker (Nathan, Harry, George, Roberta). Som følge heraf er ComboBox nu udfyldt med disse navne:

Billede 5. Befolkede ComboBox fra cellerne

Få et valgt element i en kombinationsboks i VBA

Formålet med en ComboBox er at få brugernes valg. For at hente et brugervalg, skal du bruge denne kode:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value

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

Billede 6. Få en valgt værdi fra ComboBox i VBA

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

Ryd en ComboBox

Hvis du vil rydde en ComboBox i VBA, skal du bruge Klar metode til Sheet1.lstComboBox objekt. Det sletter alle elementerne fra ComboBox. Her er koden:

1 Sheet1.cmbComboBox.Clear

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

Billede 7. Ryd kombinationsboksen

Brug en kombinationsboks i en brugerform

Som vi nævnte, bruges Combobox 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 8. 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å Kombinationsfelt for at oprette den i brugerformularen.

Billede 9. Indsæt en kombinationsboks 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.cmbComboBox.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 kombinationsboksen med disse 5 navne:

Billede 10. ComboBox 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