În VBA, puteți crea un fișier Listbox unde un utilizator poate alege una dintre opțiunile listate. Listbox este adesea utilizat în Userforms, dar poate fi utilizat și într-o foaie de lucru. În acest tutorial, veți afla cum să creați, să completați și să ștergeți o Listbox. Veți vedea, de asemenea, cum să obțineți o alegere de utilizator în VBA și să o utilizați în cod.
Dacă doriți să aflați cum să creați un ComboBox, faceți clic aici: VBA ComboBox
Dacă doriți să aflați cum să creați o casetă de selectare, faceți clic aici: Casetă de verificare VBA
Creați o listă
Pentru a insera o Listbox în Foaia de lucru, trebuie să accesați Fila dezvoltator, faceți clic pe Introduce și sub ActiveX Controls alegeți Casetă listă:
Imagine 1. Introduceți o casetă listă în foaia de lucru
Când selectați Listbox-ul pe care l-ați inserat, puteți face clic pe Proprietăți sub Fila dezvoltator:
Imagine 2. Schimbați proprietățile casetei de listă
Aici puteți seta diferite proprietăți ale Listbox-ului. Pentru început, am schimbat atributul Nume la lstListBox. Acum, putem folosi Listbox cu acest nume în codul VBA.
Completați o listă în codul VBA
În primul rând, trebuie să populăm Listbox cu valori. În majoritatea cazurilor, o Listbox trebuie să fie completată la deschiderea registrului de lucru. Din această cauză, trebuie să punem un cod pentru popularea Listbox în obiect Caiet de lucru, procedură Deschis. Această procedură se execută de fiecare dată când un utilizator deschide Registrul de lucru. Iată codul:
123456789 | Cu Sheet1.lstListBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Se termina cu |
După cum puteți vedea în imaginea 3, am completat lista noastră cu 5 nume (John, Michael, Jennifer, Lilly și Robert):
Imagine 3. Completați Listbox în VBA
Populați o listă dintr-un interval de celule
O altă modalitate posibilă de a completa o Listbox este de a permite unui utilizator să o facă. O listbox poate fi legată de intervalul de celule. Prin urmare, de fiecare dată când un utilizator introduce o nouă valoare în intervalul de celule, Listbox se va actualiza cu acea valoare.
Dacă doriți să activați acest lucru, trebuie să mergeți la Proprietăți din ListBox și setați atributul ListFillRange:
Imagine 4. Populați Listbox din intervalul de celule
Am legat Listbox-ul nostru cu gama E2: E5, unde punem numele dorite (Nathan, Harry, George, Roberta). Ca urmare, Listbox-ul este acum populat cu aceste nume.
Obțineți un element selectat dintr-o listă în VBA
Scopul unei Listbox este de a obține o alegere a utilizatorilor. Pentru a recupera o valoare selectată de un utilizator, trebuie să utilizați acest cod:
123 | Dim strSelectedItem As VariantstrSelectedItem = Sheet1.lstListBox.Value |
Selecția utilizatorilor se află în atribut Valoare de Sheet1.lstListbox obiect. Această valoare este atribuită variabilei strSelectedItem:
Imagine 5. Obțineți o valoare selectată din Listbox în VBA
Am selectat Harry în Listbox și a executat procedura. După cum puteți vedea în imaginea 5, valoarea strSelectedItem este Harry, care este valoarea pe care am selectat-o. Mai mult, puteți procesa această variabilă în cod.
Ștergeți o listă
Pentru a șterge o Listbox în VBA, trebuie să utilizați clar Metodă de Sheet1.lstListBox obiect. Se vor șterge toate articolele din Listbox. Iată codul:
1 | Sheet1.lstListBox.Clear |
Când executăm codul, obținem caseta de listă goală:
Imagine 6. Ștergeți caseta Listă
Utilizați o Listbox într-un formular de utilizator
Așa cum am menționat, Listbox este cel mai des utilizat în Userforms. Pentru a explica cum o puteți face, vom introduce mai întâi un formular de utilizator. În editorul VBA, faceți clic dreapta pe numele modulului, faceți clic pe Introduce și alegeți UserForm:
Imagine 7. Introduceți un formular de utilizator
Pentru a afișa comenzile pentru inserare, trebuie să activați Trusa de scule. Pentru a face acest lucru, faceți clic peTrusa de scule pictogramă din bara de instrumente. După aceea, veți obține ferestrele cu toate comenzile disponibile. Puteți face clic pe ListBox pentru a-l crea în Userform.
Imaginea 8. Introduceți o casetă listă în formularul de utilizator
Vom numi ComboBox cmbComboBox. Pentru a-l completa cu valori, trebuie să introducem următorul cod în metodă Inițializați a obiectului UserForm:
12345678910111213 | Private Sub UserForm_Initialize ()Cu UserForm1.lstListBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Se termina cuSfârșitul Sub |
Acest cod se declanșează de fiecare dată când un utilizator rulează formularul de utilizator și completează Listbox cu aceste 5 nume:
Imagine 9. Caseta listă cu valori în Formularul de utilizator
Dacă doriți să obțineți valoarea selectată din ComboBox, trebuie să utilizați aceeași logică pentru Combobox într-o foaie de lucru, care este explicată mai devreme în articol.