VBA ComboBox

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.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave