Zoznam VBA

Vo VBA môžete vytvoriť súbor Listbox kde si používateľ môže vybrať jednu z uvedených možností. Listbox sa často používa v užívateľských formulároch, ale môže sa použiť aj v pracovnom hárku. V tomto návode sa naučíte vytvárať, vyplňovať a odstraňovať zoznamy. Tiež uvidíte, ako získať vo VBA užívateľskú voľbu a použiť ju v kóde.

Ak sa chcete dozvedieť, ako vytvoriť ComboBox, kliknite sem: ComboBox VBA

Ak sa chcete dozvedieť, ako vytvoriť začiarkavacie políčko, kliknite sem: Začiarkavacie políčko VBA

Vytvorte si zoznam

Ak chcete vložiť zoznam do pracovného hárka, musíte prejsť na Karta vývojára, klikni Vložiť a v časti Ovládacie prvky ActiveX vyberte Pole so zoznamom:

Obrázok 1. Vložte listbox do pracovného hárka

Keď vyberiete zoznam, ktorý ste vložili, môžete naň kliknúť Vlastnosti pod Karta vývojára:

Obrázok 2. Zmeňte vlastnosti zoznamu

Tu môžete nastaviť rôzne vlastnosti zoznamu. Na začiatku sme zmenili atribút názov do lstListBox. Teraz môžeme použiť Listbox s týmto názvom v kóde VBA.

Naplňte zoznam do kódu VBA

Najprv musíme zoznam naplniť hodnotami. Zoznambox je vo väčšine prípadov potrebné vyplniť pri otvorení zošita. Z tohto dôvodu musíme vložiť kód na vyplnenie objektu Listbox v objekte Pracovný zošit, postup Otvorené. Tento postup sa vykoná vždy, keď používateľ otvorí zošit. Tu je kód:

123456789 S Sheet1.lstListBox.Pridať položku "John".Pridať položku "Michael".AddItem "Jennifer".Pridať položku "Lilly".Pridať položku "Robert"Ukončiť s

Ako vidíte na obrázku 3, do nášho zoznamu sme vložili 5 mien (John, Michael, Jennifer, Lilly a Robert):

Obrázok 3. Naplňte zoznam v VBA

Vyplňte zoznamové pole z rozsahu buniek

Ďalším možným spôsobom, ako naplniť zoznam, je nechať to urobiť používateľa. Listbox je možné prepojiť s rozsahom buniek. Preto zakaždým, keď používateľ zadá novú hodnotu v oblasti buniek, zoznam sa aktualizuje s touto hodnotou.

Ak to chcete povoliť, musíte prejsť na Vlastnosti zoznamu a nastavte atribút ListFillRange:

Obrázok 4. Naplňte pole Listbox z rozsahu buniek

Náš zoznam je prepojený s rozsahom E2: E5, kde sme zadali požadované mená (Nathan, Harry, George, Roberta). Výsledkom je, že v zozname je teraz tieto názvy.

Získajte vybranú položku zo zoznamu vo VBA

Účelom zoznamu je získať pre používateľov výber. Na získanie hodnoty, ktorú vybral používateľ, musíte použiť tento kód:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.lstListBox.Value

V atribúte je výber používateľov Hodnota z Sheet1.lstListbox predmet. Táto hodnota je priradená k premennej strSelectedItem:

Obrázok 5. Získajte zvolenú hodnotu zo zoznamu v programe VBA

Vybrali sme Harry v zozname a vykonajte postup. Ako vidíte na obrázku 5, hodnota strSelectedItem je Harry, čo je hodnota, ktorú sme vybrali. Okrem toho môžete túto premennú spracovať v kóde.

Vymažte zoznam

Na vymazanie zoznamového poľa vo VBA musíte použiť jasný metóda Sheet1.lstListBox predmet. Odstráni všetky položky zo zoznamu. Tu je kód:

1 Sheet1.lstListBox.Clear

Keď spustíme kód, dostaneme prázdne pole so zoznamom:

Obrázok 6. Vymažte zoznam

Použite Listbox v užívateľskej forme

Ako sme už spomenuli, Listbox sa najčastejšie používa vo formách Userforms. Aby sme vám vysvetlili, ako to môžete urobiť, najskôr vložíme užívateľský formulár. V editore VBA kliknite pravým tlačidlom myši na Názov modulu, kliknite na Vložiť a vyber si UserForm:

Obrázok 7. Vložte užívateľský formulár

Ak chcete zobraziť ovládacie prvky na vkladanie, musíte povoliť Sada nástrojov. Ak to chcete urobiť, kliknite naSada nástrojov ikonu na paneli s nástrojmi. Potom získate okná so všetkými dostupnými ovládacími prvkami. Môžete kliknúť na ListBox vytvoriť ho vo forme používateľa.

Obrázok 8. Vložiť zoznam do užívateľského formulára

Pomenujeme ComboBox cmbComboBox. Aby sme ho naplnili hodnotami, musíme do metódy vložiť nasledujúci kód Inicializovať predmetu UserForm:

12345678910111213 Private Sub UserForm_Initialize ()S UserForm1.lstListBox.Pridať položku "John".Pridať položku "Michael".AddItem "Jennifer".Pridať položku "Lilly".Pridať položku "Robert"Ukončiť sKoniec pod

Tento kód sa spustí zakaždým, keď používateľ spustí užívateľskú formu, a naplní zoznamovú schránku týmito 5 menami:

Obrázok 9. Pole so zoznamom s hodnotami vo forme používateľa

Ak chcete získať vybranú hodnotu z ComboBoxu, musíte použiť rovnakú logiku pre Combobox v pracovnom hárku, ktorá je vysvetlená vyššie v článku.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave