VBA -s saate luua a Loendikast kus kasutaja saab valida ühe loetletud valikutest. Loendiboksi kasutatakse sageli Userformsis, kuid seda saab kasutada ka töölehel. Selles õpetuses saate teada, kuidas loendikast luua, täita ja kustutada. Samuti näete, kuidas saada VBA -s kasutaja valik ja seda koodis kasutada.
Kui soovite õppida ComboBoxi loomist, klõpsake siin: VBA ComboBox
Kui soovite õppida märkeruudu loomist, klõpsake siin: VBA märkeruut
Looge loendikast
Töölehele loendiboksi lisamiseks peate minema lehele Arendaja vahekaart, klõpsake Sisesta ja valige ActiveX -juhtelementide alt Loendikast:
Pilt 1. Sisestage töölehele loendikast
Kui valite lisatud loendikasti, saate klõpsata Omadused all Arendaja vahekaart:
Pilt 2. Loendikasti omaduste muutmine
Siin saate määrata loendiboksi erinevaid atribuute. Alustuseks muutsime atribuuti Nimi et lstListBox. Nüüd saame selle nimega loendikasti kasutada VBA -koodis.
Täida loendikast VBA -koodis
Esiteks peame loendikasti täitma väärtustega. Enamikul juhtudel tuleb töövihiku avamisel täita loendikast. Seetõttu peame objekti loendikasti täitmiseks sisestama koodi Töövihik, protseduur Avatud. See toiming viiakse läbi iga kord, kui kasutaja avab töövihiku. Siin on kood:
123456789 | Koos Sheet1.lstListBoxiga.Lisa "John".Lisa "Michael".Lisa "Jennifer".Lisa "Lilly".Lisa "Robert"Lõpeta |
Nagu näete pildil 3, täitsime oma nimekirja 5 nimega (John, Michael, Jennifer, Lilly ja Robert):
Pilt 3. Täida loendikast VBA -s
Täitke loendikast lahtrite vahemikust
Teine võimalik viis loendikasti täitmiseks on lasta kasutajal seda teha. Loendiboksi saab siduda lahtrite vahemikuga. Seetõttu värskendatakse loendiboksi selle väärtusega iga kord, kui kasutaja sisestab lahtrite vahemikku uue väärtuse.
Kui soovite selle lubada, peate minema lehele Omadused ListBoxist ja määrake atribuut ListFillRange:
Pilt 4. Täitke loendiboks lahtrite vahemikust
Me sidusime oma Listboxi vahemikuga E2: E5, kuhu panime soovitud nimed (Nathan, Harry, George, Roberta). Seetõttu on loendikast nüüd nende nimedega täidetud.
Hankige VBA -s loendikasti valitud üksus
Listboxi eesmärk on saada kasutajatele valik. Kasutaja valitud väärtuse toomiseks peate kasutama järgmist koodi.
123 | Dim strSelectedItem VariantstrSelectedItem = Sheet1.lstListBox.Value |
Kasutajate valik on atribuudis Väärtus kohta Sheet1.lstListbox objekti. See väärtus määratakse muutujale strSelectedItem:
Pilt 5. Hankige valitud väärtus VBA loendikastist
Valisime Harry loendikastis ja viis protseduuri läbi. Nagu näete pildil 5, on strSelectedItem on Harry, mis on meie valitud väärtus. Lisaks saate seda muutujat koodis töödelda.
Loendiboksi tühjendamine
Loendikasti tühjendamiseks VBA -s peate kasutama Selge meetod Sheet1.lstListBox objekti. See kustutab loendikastist kõik üksused. Siin on kood:
1 | Sheet1.lstListBox.Clear |
Koodi täitmisel saame tühja loendikasti:
Pilt 6. Kustutage loendikast
Kasutage kasutajavormis loendiboksi
Nagu me mainisime, kasutatakse Listboxi kõige sagedamini Userformsis. Selleks, et selgitada, kuidas saate seda teha, sisestame esmalt Userformi. VBA redaktoris paremklõpsake mooduli nime, klõpsake nuppu Sisesta ja valida UserForm:
Pilt 7. Sisestage kasutajavorm
Sisestamise juhtelementide kuvamiseks peate lubama Tööriistakast. Selleks klõpsake nuppuTööriistakast ikooni tööriistaribal. Pärast seda saate aknad koos kõigi saadaolevate juhtelementidega. Võite klõpsata ListBox selle loomiseks Userformis.
Pilt 8. Sisestage kasutajavormi loendikast
Me nimetame ComboBoxi cmbComboBox. Selle väärtuste täitmiseks peame meetodisse sisestama järgmise koodi Initsialiseerida objektist UserForm:
12345678910111213 | Privaatne alamkasutajaForm_Initialize ()Koos UserForm1.lstListBoxiga.Lisa "John".Lisa "Michael".Lisa "Jennifer".Lisa "Lilly".Lisa "Robert"LõpetaEnd Sub |
See kood käivitub iga kord, kui kasutaja Userformi käivitab, ja täidab loendikasti nende viie nimega:
Pilt 9. Kasutajavormi väärtustega loendikast
Kui soovite ComboBoxist valitud väärtust saada, peate töölehel Comboboxi jaoks kasutama sama loogikat, mida on artiklis varem selgitatud.