Listă VBA

Î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.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave