VBA varat izveidot a Saraksta kaste kur lietotājs var izvēlēties vienu no uzskaitītajām opcijām. Listbox bieži tiek izmantots Userforms, bet to var izmantot arī darblapā. Šajā apmācībā jūs uzzināsit, kā izveidot, aizpildīt un dzēst sarakstu lodziņu. Jūs arī redzēsit, kā iegūt lietotāja izvēli VBA un izmantot to kodā.
Ja vēlaties uzzināt, kā izveidot ComboBox, noklikšķiniet šeit: VBA ComboBox
Ja vēlaties uzzināt, kā izveidot izvēles rūtiņu, noklikšķiniet šeit: VBA izvēles rūtiņa
Izveidojiet sarakstu
Lai darblapā ievietotu saraksta lodziņu, jums jādodas uz Cilne Izstrādātājs, klikšķis Ievietot un sadaļā ActiveX vadīklas izvēlieties Saraksta lodziņš:
Attēls 1. Darblapā ievietojiet saraksta lodziņu
Atlasot ievietoto saraksta lodziņu, varat noklikšķināt uz Rekvizīti saskaņā Cilne Izstrādātājs:
2. attēls. Mainīt saraksta lodziņa rekvizītus
Šeit jūs varat iestatīt dažādus saraksta lodziņa rekvizītus. Sākumā mēs mainījām atribūtu Vārds uz lstListBox. Tagad mēs varam izmantot saraksta lodziņu ar šo nosaukumu VBA kodā.
Saraksta lodziņa aizpildīšana VBA kodā
Pirmkārt, mums ir jāaizpilda saraksta lodziņš ar vērtībām. Vairumā gadījumu, atverot darbgrāmatu, ir jāaizpilda saraksta kastīte. Šī iemesla dēļ mums objektā ir jāievieto kods Listbox aizpildīšanai Darba burtnīca, procedūra Atvērt. Šī procedūra tiek veikta katru reizi, kad lietotājs atver darbgrāmatu. Šeit ir kods:
123456789 | Ar Sheet1.lstListBox.Pievienot "Jānis".Pievienot "Maikls".Pievienot "Dženifera".Pievienot "Lilly".Pievienot "Roberts"Beigt ar |
Kā redzat 3. attēlā, mūsu sarakstu kastē bija 5 vārdi (Džons, Maikls, Dženifera, Lilija un Roberts):
3. attēls. Saraksta lodziņa aizpildīšana VBA
Saraksta lodziņa aizpildīšana no šūnu diapazona
Vēl viens iespējamais saraksta kastes aizpildīšanas veids ir ļaut lietotājam to izdarīt. Sarakstu lodziņu var saistīt ar šūnu diapazonu. Tāpēc katru reizi, kad lietotājs šūnu diapazonā ievada jaunu vērtību, saraksta lodziņš tiks atjaunināts ar šo vērtību.
Ja vēlaties to iespējot, jums jādodas uz Rekvizīti sarakstā un iestatiet atribūtu ListFillRange:
4. attēls. Saraksta lodziņu aizpildiet no šūnu diapazona
Mēs saistījām savu Listbox ar diapazonu E2: E5, kur ievietojām vēlamos vārdus (Neitans, Harijs, Džordžs, Roberta). Rezultātā sarakstu kastē tagad ir šie nosaukumi.
Iegūstiet atlasītu saraksta lodziņa vienumu VBA
Listbox mērķis ir panākt, lai lietotāji izvēlas. Lai izgūtu lietotāja atlasītu vērtību, jums jāizmanto šis kods:
123 | Dim strSelectedItem kā variantsstrSelectedItem = Sheet1.lstListBox.Value |
Lietotāja izvēle ir atribūtā Vērtība no Sheet1.lstListbox objekts. Šī vērtība tiek piešķirta mainīgajam strSelectedItem:
5. attēls. Iegūstiet atlasīto vērtību no saraksta kastes VBA
Mēs izvēlējāmies Harijs sarakstā un izpildīja procedūru. Kā redzat 5. attēlā, vērtība strSelectedItem ir Harijs, kas ir mūsu izvēlētā vērtība. Turklāt jūs varat apstrādāt šo mainīgo kodā.
Notīrīt saraksta lodziņu
Lai notīrītu sarakstu lodziņu VBA, jums jāizmanto Skaidrs metode Sheet1.lstListBox objekts. Tas izdzēsīs visus vienumus no saraksta kastes. Šeit ir kods:
1 | Sheet1.lstListBox.Clear |
Izpildot kodu, mēs iegūstam tukšu saraksta lodziņu:
Attēls 6. Notīriet saraksta lodziņu
Lietotāja formā izmantojiet sarakstlodziņu
Kā jau minējām, Listbox visbiežāk tiek izmantots Userforms. Lai izskaidrotu, kā to izdarīt, mēs vispirms ievietojam Userform. VBA redaktorā ar peles labo pogu noklikšķiniet uz moduļa nosaukuma, noklikšķiniet uz Ievietot un izvēlēties UserForm:
7. attēls. Ievietojiet Userform
Lai parādītu ievietošanas vadīklas, jums ir jāiespējo Instrumentu kaste. Lai to izdarītu, noklikšķiniet uzInstrumentu kaste ikonu rīkjoslā. Pēc tam jūs iegūsit logus ar visām pieejamajām vadības ierīcēm. Jūs varat noklikšķināt uz ListBox lai to izveidotu Userform.
8. attēls. Lietotāja formā ievietojiet saraksta lodziņu
Mēs nosauksim nosaukumu ComboBox cmbComboBox. Lai to aizpildītu ar vērtībām, mums metodē jāievieto šāds kods Palaist no objekta UserForm:
12345678910111213 | Privāts apakšlietotājsForm_Initialize ()Ar UserForm1.lstListBox.Pievienot "Jānis".Pievienot "Maikls".Pievienot "Dženifera".Pievienot "Lilly".Pievienot "Roberts"Beigt arBeigu apakš |
Šis kods tiek aktivizēts katru reizi, kad lietotājs palaiž Userform un aizpilda sarakstu lodziņu ar šiem 5 nosaukumiem:
9. attēls. Saraksta lodziņš ar vērtībām Userform
Ja vēlaties iegūt atlasīto vērtību no kombinētās kastes, darblapā ir jāizmanto tā pati loģika kombinētajai kastei, kas ir izskaidrota iepriekš rakstā.