A VBA -ban létrehozhat egy Listbox ahol a felhasználó választhat a felsorolt lehetőségek közül. A Listbox gyakran használatos a Userforms -ban, de használható munkalapon is. Ebben az oktatóanyagban megtudhatja, hogyan hozhat létre, tölthet fel és törölhet listát. Azt is látni fogja, hogyan lehet a felhasználó választását elérni a VBA -ban és használni a kódban.
Ha meg szeretné tanulni a ComboBox létrehozását, kattintson ide: VBA ComboBox
Ha meg szeretné tanulni a jelölőnégyzet létrehozását, kattintson ide: VBA jelölőnégyzet
Lista doboz létrehozása
Ahhoz, hogy egy Listboxot beilleszthessen a munkalapba, el kell mennie a Fejlesztői lap, kattintson Beszúrás és az ActiveX vezérlők alatt válassza a lehetőséget Lista mező:
Kép 1. Helyezzen be egy Listboxot a munkalapba
Amikor kiválasztja a beszúrt listát, rákattinthat Tulajdonságok alatt Fejlesztői lap:
2. kép: A Listbox tulajdonságainak módosítása
Itt állíthatja be a Listbox különböző tulajdonságait. Kezdetben megváltoztattuk az attribútumot Név nak nek lstListBox. Most használhatjuk a Listbox -ot ezzel a névvel a VBA -kódban.
Listabetöltés a VBA -kódban
Először is ki kell töltenünk a Listbox értékeket. A legtöbb esetben a listát ki kell tölteni a munkafüzet megnyitásakor. Emiatt be kell írnunk egy kódot a Listbox objektumba való feltöltéséhez Munkafüzet, eljárás Nyisd ki. Ezt az eljárást minden alkalommal végrehajtja, amikor a felhasználó megnyitja a munkafüzetet. Itt a kód:
123456789 | A Sheet1.lstListBox segítségével.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Vége ezzel |
Amint az a 3. képen is látható, 5 névvel (John, Michael, Jennifer, Lilly és Robert) töltöttük fel a Listboxot:
3. kép. Töltse ki a listát a VBA -ban
Töltsön ki egy Listboxot egy cellák tartományából
A Listbox feltöltésének másik lehetséges módja az, ha hagyja, hogy a felhasználó megtegye. A Listbox összekapcsolható a cellák tartományával. Ezért minden alkalommal, amikor egy felhasználó új értéket ad meg a cellatartományban, a Listbox ezzel az értékkel frissül.
Ha engedélyezni szeretné ezt, menjen a Tulajdonságok listából, és állítsa be az attribútumot ListFillRange:
4. kép. A Listbox kitöltése a cellák tartományából
A Listboxot az E2: E5 tartományhoz kapcsoltuk, ahová a kívánt neveket adtuk (Nathan, Harry, George, Roberta). Ennek eredményeként a Listbox mostantól ezekkel a nevekkel van feltöltve.
Szerezzen be egy kiválasztott elemet egy listabockából a VBA -ban
A Listbox célja, hogy a felhasználók választhassanak. A felhasználó által kiválasztott érték lekéréséhez ezt a kódot kell használnia:
123 | Dim strSelectedItem mint változatstrSelectedItem = Sheet1.lstListBox.Value |
A felhasználók kiválasztása az attribútumban található Érték nak,-nek Sheet1.lstListbox tárgy. Ez az érték hozzá van rendelve a változóhoz strSelectedItem:
5. kép. Szerezzen be egy kiválasztott értéket a VBA Lista mezőjéből
Mi választottunk Harry a Listboxban, és végrehajtotta az eljárást. Amint az 5. képen látható, a strSelectedItem van Harry, amely az általunk kiválasztott érték. Továbbá feldolgozhatja ezt a változót a kódban.
Lista doboz törlése
A VBA listalista törléséhez a következőt kell használnia Egyértelmű a metódusa Sheet1.lstListBox tárgy. Törli az összes elemet a listából. Itt a kód:
1 | Sheet1.lstListBox.Clear |
Amikor végrehajtjuk a kódot, az üres Listboxot kapjuk:
6. kép. Törölje a Listboxot
Használjon Listboxot egy felhasználói űrlapon
Amint említettük, a Listboxot leggyakrabban a Userforms -ban használják. Ennek megmagyarázásához először be kell illesztenünk egy felhasználói űrlapot. A VBA szerkesztőben kattintson a jobb gombbal a modul nevére, majd kattintson a gombra Beszúrás és válasszon UserForm:
7. kép. Szúrjon be egy felhasználói űrlapot
A beszúrás vezérlőinek megjelenítéséhez engedélyeznie kell a Eszköztár. Ehhez kattintson a gombraEszköztár ikont az eszköztáron. Ezt követően megkapja az ablakokat az összes rendelkezésre álló vezérlővel. Rákattinthat ListBox létrehozásához a Userformban.
8. kép. Helyezzen be egy Listboxot a Userformba
A ComboBox nevet fogjuk adni cmbComboBox. Annak érdekében, hogy értékekkel töltsük fel, be kell helyeznünk a következő kódot a módszerbe Inicializálás a tárgyról UserForm:
12345678910111213 | Privát alfelhasználóForm_Initialize ()A UserForm1.lstListBox segítségével.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Vége ezzelEnd Sub |
Ez a kód minden alkalommal aktiválódik, amikor a felhasználó futtatja a Userformot, és a következő öt névvel tölti fel a Listboxot:
9. kép. A Listbox értékekkel a Userformban
Ha a kiválasztott értéket a ComboBox -ból szeretné lekérni, akkor ugyanazt a logikát kell használnia a Combobox -nak a munkalapon, amelyet a cikk korábban ismertet.