ComboBox VBA

Kombinované boxy umožniť používateľom vybrať si možnosť z rozbaľovacieho zoznamu. ComboBoxy je možné vytvoriť vo VBA UserForms alebo pomocou pracovného hárka programu Excel. V tomto tutoriále sa naučíte vytvárať a manipulovať s ComboBoxmi vo VBA a v pracovných hárkoch Excelu.

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

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

Vytvorte ComboBox v hárku programu Excel

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

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

Keď vyberiete vložený ComboBox, môžete naň kliknúť Vlastnosti pod Karta vývojára:

Obrázok 2. Zmeňte vlastnosti ComboBoxu

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

Naplňte ComboBox v kóde VBA

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

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

Po kliknutí na rozbaľovaciu ponuku dostanete na výber 5 mien (John, Michael, Jennifer, Lilly a Robert):

Obrázok 3. Naplňte ComboBox vo VBA

Naplňte ComboBox z radu buniek

Ďalším možným spôsobom, ako naplniť ComboBox, je nechať to urobiť používateľa. ComboBox môže byť prepojený s rozsahom buniek. Pri tomto prístupe sa zakaždým, keď používateľ zadá novú hodnotu v oblasti buniek, ComboBox aktualizuje s touto hodnotou.

Ak to chcete povoliť, musíte prejsť na Vlastnosti ComboBoxu a nastavte atribút ListFillRange do rozsahu buniek (v našom prípade E2: E5):

Obrázok 4. Naplňte ComboBox z radu buniek

Náš ComboBox sme prepojili s radom E2: E5, kde sme vložili požadované mená (Nathan, Harry, George, Roberta). Výsledkom je, že ComboBox je teraz osadený týmito názvami:

Obrázok 5. Populárny ComboBox z radu buniek

Získajte vybranú položku ComboBoxu vo VBA

Účelom ComboBoxu je nechať si vybrať používateľov. Ak chcete získať výber používateľov, musíte použiť tento kód:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value

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

Obrázok 6. Získajte vybranú hodnotu z ComboBoxu vo VBA

Vybrali sme Julia v ComboBoxe a vykonal postup. Ako vidíte na obrázku 5, hodnota strSelectedItem je Julia, čo je hodnota, ktorú sme vybrali. Teraz môžete túto premennú ďalej spracovávať v kóde.

Vymažte pole ComboBox

Ak chcete vymazať ComboBox vo VBA, musíte použiť jasný metóda Sheet1.lstComboBox predmet. Odstráni všetky položky z ComboBoxu. Tu je kód:

1 List1.cmbComboBox.Clear

Keď spustíme kód, dostaneme prázdny ComboBox:

Obrázok 7. Vymažte pole ComboBox

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

Ako sme už spomenuli, Combobox sa najčastejšie používa v 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 8. 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 ComboBox vytvoriť ho vo forme používateľa.

Obrázok 9. Vložte ComboBox 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.cmbComboBox.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í Userform a naplní Combobox týmito 5 názvami:

Obrázok 10. ComboBox s hodnotami vo forme uží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