ComboBoxes uporabnikom omogočajo izbiro možnosti s spustnega seznama. ComboBoxes lahko ustvarite v uporabniških obrazcih VBA ali z Excelovim delovnim listom. V tej vadnici se boste naučili ustvarjati in upravljati ComboBoxes v delovnih listih VBA in Excel.
Če se želite naučiti ustvariti Listbox, kliknite tukaj: VBA Listbox
Če se želite naučiti ustvariti potrditveno polje, kliknite tukaj: potrditveno polje VBA
Ustvarite ComboBox v Excelovem delovnem listu
Če želite v delovni list vstaviti ComboBox, pojdite na Zavihek za razvijalce, kliknite Vstavi in pod možnostjo Kontrolniki ActiveX izberite Combo Box:
Slika 1. Vstavite ComboBox v delovni list
Ko izberete ComboBox, ki ste ga vstavili, lahko kliknete Lastnosti pod Zavihek za razvijalce:
Slika 2. Spremenite lastnosti ComboBox
Tu lahko nastavite različne lastnosti ComboBox -a. Za začetek smo spremenili atribut Ime do cmbComboBox. Zdaj lahko v kodi VBA uporabimo ComboBox s tem imenom.
Popolnite ComboBox v kodi VBA
Najprej moramo ComboBox napolniti z vrednostmi. V večini primerov je treba ob odpiranju delovnega zvezka vnesti ComboBox. Zaradi tega moramo vnesti kodo za poseljevanje ComboBox v objekt Delovni zvezek, postopek Odprto. Ta postopek se izvede vsakič, ko uporabnik odpre delovni zvezek. Tukaj je koda:
123456789 | S Sheet1.cmbComboBox.Dodaj "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".Dodatek "Robert"Končaj s |
Ko kliknete spustni meni, boste imeli na izbiro 5 imen (John, Michael, Jennifer, Lilly in Robert):
Slika 3. Napolnite ComboBox v VBA
Napolnite ComboBox iz obsega celic
Drug možen način zapolnitve ComboBox je, da to dovolite uporabniku. ComboBox je mogoče povezati z obsegom celic. Pri tem pristopu bo vsakič, ko uporabnik vnese novo vrednost v obseg celic, ComboBox posodobil s to vrednostjo.
Če želite to omogočiti, pojdite na Lastnosti polja ComboBox in nastavite atribut ListFillRange do razpona celic (v našem primeru E2: E5):
Slika 4. Napolnite ComboBox iz obsega celic
Naš ComboBox smo povezali z obsegom E2: E5, kamor vnesemo imena, ki jih želimo (Nathan, Harry, George, Roberta). Posledično je ComboBox zdaj poseljen s temi imeni:
Slika 5. Napolnjeni ComboBox iz obsega celic
Pridobite izbrani element ComboBox v VBA
Namen ComboBox -a je, da uporabniki izbirajo. Če želite pridobiti izbiro uporabnikov, morate uporabiti to kodo:
123 | Zatemni strSelectedItem kot variantostrSelectedItem = Sheet1.cmbComboBox.Value |
Izbira uporabnikov je v atributu Vrednost od Sheet1.cmbComboBox predmet. Ta vrednost je dodeljena spremenljivki strSelectedItem:
Slika 6. Pridobite izbrano vrednost iz ComboBox v VBA
Izbrali smo Julija v ComboBoxu in izvedla postopek. Kot lahko vidite na sliki 5, je vrednost strSelectedItem je Julija, kar je vrednost, ki smo jo izbrali. Zdaj lahko to spremenljivko obdelate naprej v kodi.
Počistite ComboBox
Če želite počistiti ComboBox v VBA, morate uporabiti Jasno metoda Sheet1.lstComboBox predmet. Izbrisal bo vse elemente iz ComboBox -a. Tukaj je koda:
1 | Sheet1.cmbComboBox.Clear |
Ko izvedemo kodo, dobimo prazen ComboBox:
Slika 7. Počistite ComboBox
Uporabite ComboBox v uporabniškem obrazcu
Kot smo omenili, se Combobox najpogosteje uporablja v uporabniških oblikah. Če želite razložiti, kako lahko to storite, najprej vstavimo uporabniški obrazec. V urejevalniku VBA z desno tipko miške kliknite Ime modula, kliknite na Vstavi in izberite Uporabniški obrazec:
Slika 8. Vstavite uporabniški obrazec
Če želite prikazati kontrolnike za vstavljanje, morate omogočiti Orodjarna. Če želite to narediti, kliknite naOrodjarna ikono v orodni vrstici. Po tem boste dobili okna z vsemi razpoložljivimi kontrolami. Lahko kliknete na ComboBox da ga ustvarite v uporabniškem obrazcu.
Slika 9. Vstavite ComboBox v Userform
Imenovali bomo ComboBox cmbComboBox. Če ga želimo zapolniti z vrednostmi, moramo v metodo vnesti naslednjo kodo Inicializirajte predmeta Uporabniški obrazec:
12345678910111213 | Zasebni podporabnikForm_Initialize ()Z UserForm1.cmbComboBox.Dodaj "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".Dodatek "Robert"Končaj sEnd Sub |
Ta koda se sproži vsakič, ko uporabnik zažene obliko uporabnika in v zbirno polje vnese teh 5 imen:
Slika 10. ComboBox z vrednostmi v Userform
Če želite iz ComboBox -a dobiti izbrano vrednost, morate uporabiti isto logiko za Combobox na delovnem listu, kar je razloženo prej v članku.