VBA popisni okvir

U VBA možete stvoriti Okvir s popisom gdje korisnik može izabrati jednu od navedenih opcija. Listbox se često koristi u korisničkim oblicima, ali se može koristiti i na radnom listu. U ovom ćete vodiču naučiti kako stvoriti, popuniti i izbrisati popisni okvir. Također ćete vidjeti kako dobiti korisnički izbor u VBA -i i koristiti ga u kodu.

Ako želite naučiti kako stvoriti ComboBox, kliknite ovdje: VBA ComboBox

Ako želite naučiti kako stvoriti okvir za potvrdu, kliknite ovdje: VBA potvrdni okvir

Napravite okvir s popisom

Da biste umetnuli Listbox u radni list, morate otići na Kartica Developer, kliknite Umetnuti a pod ActiveX Controls odaberite Okvir s popisom:

Slika 1. Umetnite Listbox u radni list

Kada odaberete okvir s popisom koji ste umetnuli, možete kliknuti na Svojstva ispod Kartica Developer:

Slika 2. Promijenite svojstva okvira za popis

Ovdje možete postaviti različita svojstva okvira za popis. Za početak smo promijenili atribut Ime do lstListBox. Sada možemo koristiti Listbox s ovim imenom u VBA kodu.

Popunite okvir s popisom u VBA kodu

Prvo, moramo popuniti Listbox vrijednostima. U većini slučajeva prilikom otvaranja radne knjige potrebno je popuniti okvir s popisom. Zbog toga moramo staviti kôd za popunjavanje Listbox u objekt Radna bilježnica, postupak Otvorena. Ovaj se postupak izvodi svaki put kada korisnik otvori radnu knjigu. Evo koda:

123456789 S Sheet1.lstListBox.Dodajte stavku "John".Dodajte stavku "Michael".Dodajte stavku "Jennifer".Dodajte stavku "Lilly".Dodatak "Robert"Završi s

Kao što možete vidjeti na slici 3, naš smo popisni okvir popunili s 5 imena (John, Michael, Jennifer, Lilly i Robert):

Slika 3. Popunite Listbox u VBA -i

Popunite okvir s popisom iz raspona ćelija

Drugi mogući način popunjavanja okvira za popis je dopustiti korisniku da to učini. Okvir s popisima može se povezati s rasponom ćelija. Stoga će se svaki put kada korisnik unese novu vrijednost u raspon ćelija, okvir s popisom ažurirati tom vrijednošću.

Ako to želite omogućiti, morate otići na Svojstva ListBox -a i postavite atribut ListFillRange:

Slika 4. Popunite okvir s popisom iz raspona ćelija

Povezali smo naš Listbox s rasponom E2: E5, gdje stavljamo imena koja želimo (Nathan, Harry, George, Roberta). Kao rezultat toga, Listbox je sada popunjen tim nazivima.

Nabavite odabranu stavku popisa u VBA -i

Svrha Listbox -a je omogućiti korisnicima izbor. Da biste dohvatili vrijednost koju je odabrao korisnik, morate koristiti ovaj kôd:

123 Zatamni strSelectedItem kao varijantustrSelectedItem = Sheet1.lstListBox.Value

Odabir korisnika nalazi se u atributu Vrijednost od Sheet1.lstListbox objekt. Ova vrijednost je dodijeljena varijabli strSelectedItem:

Slika 5. Dobijte odabranu vrijednost iz Listbox -a u VBA -i

Odabrali smo Harry u popisnom okviru i izvršio postupak. Kao što možete vidjeti na slici 5, vrijednost strSelectedItem je Harry, što je vrijednost koju smo odabrali. Nadalje, ovu varijablu možete obraditi u kodu.

Očistite okvir s popisom

Da biste izbrisali Listbox u VBA -i, morate upotrijebiti Čisto metoda List1.lstListBox objekt. Izbrisat će se sve stavke iz okvira s popisom. Evo koda:

1 Sheet1.lstListBox.Clear

Kada izvršimo kôd, dobivamo prazan Listbox:

Slika 6. Očistite okvir s popisom

Upotrijebite Listbox u korisničkom obrascu

Kao što smo spomenuli, Listbox se najčešće koristi u korisničkim oblicima. Da bismo objasnili kako to možete učiniti, prvo ćemo umetnuti Userform. U uređivaču VBA desnom tipkom miša kliknite naziv modula, a zatim kliknite Umetnuti i izabrati Korisnički obrazac:

Slika 7. Umetnite korisnički obrazac

Da biste prikazali kontrole za umetanje, morate omogućiti Kutija s alatima. Da biste to učinili, kliknite naKutija s alatima ikonu na alatnoj traci. Nakon toga dobit ćete prozore sa svim dostupnim kontrolama. Možete kliknuti na ListBox kako biste ga stvorili u korisničkom obliku.

Slika 8. Umetnite Listbox u Userform

Nazvat ćemo ComboBox cmbComboBox. Da bismo ga popunili vrijednostima, moramo unijeti sljedeći kod u metodu Inicijalizirati objekta Korisnički obrazac:

12345678910111213 Privatni pomoćni korisnički obrazac_Initialize ()Pomoću UserForm1.lstListBox.Dodajte stavku "John".Dodajte stavku "Michael".Dodajte stavku "Jennifer".Dodajte stavku "Lilly".Dodatak "Robert"Završi sKraj podm

Ovaj se kôd pokreće svaki put kada korisnik pokrene Userform i popuni okvir s ovih 5 imena:

Slika 9. Listbox sa vrijednostima u korisničkom obliku

Ako želite dobiti odabranu vrijednost iz ComboBox -a, morate koristiti istu logiku za Combobox na radnom listu, što je objašnjeno ranije u članku.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave