ComboBoxes permiteți utilizatorilor să selecteze o opțiune dintr-o listă de meniu derulant. ComboBox-urile pot fi create în VBA UserForms sau cu o foaie de lucru Excel. În acest tutorial, veți afla cum să creați și să manipulați ComboBoxes în VBA și în foi de lucru Excel.
Dacă doriți să aflați cum să creați o Listbox, faceți clic aici: VBA Listbox
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 foaie de lucru ComboBox în Excel
Pentru a insera un ComboBox în foaia de lucru, trebuie să accesați Fila dezvoltator, faceți clic pe Introduce și sub ActiveX Controls alegeți Combo Box:
Imagine 1. Introduceți un ComboBox în foaia de lucru
Când selectați ComboBox-ul pe care l-ați inserat, puteți face clic pe Proprietăți sub Fila dezvoltator:
Imagine 2. Schimbați proprietățile ComboBox
Aici puteți seta diferite proprietăți ale ComboBox. Pentru a începe, am schimbat atributul Nume la cmbComboBox. Acum, putem folosi ComboBox cu acest nume în codul VBA.
Completați un ComboBox în codul VBA
În primul rând, trebuie să populăm ComboBox cu valori. În majoritatea cazurilor, un ComboBox trebuie completat la deschiderea registrului de lucru. Din această cauză, trebuie să punem un cod pentru popularea ComboBox î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.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Se termina cu |
Când faceți clic pe meniul derulant, veți primi 5 nume din care să alegeți (John, Michael, Jennifer, Lilly și Robert):
Imaginea 3. Completați ComboBox în VBA
Populați un ComboBox dintr-o gamă de celule
O altă modalitate posibilă de a completa un ComboBox este de a lăsa un utilizator să o facă. Un ComboBox poate fi legat de gama de celule. În această abordare, de fiecare dată când un utilizator introduce o nouă valoare în intervalul de celule, ComboBox se va actualiza cu acea valoare.
Dacă doriți să activați acest lucru, trebuie să mergeți la Proprietăți din ComboBox și setați atributul ListFillRange la intervalul de celule (în cazul nostru E2: E5):
Imagine 4. Completați ComboBox din intervalul de celule
Am legat ComboBox-ul nostru cu gama E2: E5, unde punem numele dorite (Nathan, Harry, George, Roberta). Ca rezultat, ComboBox este acum populat cu aceste nume:
Imagine 5. ComboBox populat din gama de celule
Obțineți un element selectat dintr-un ComboBox în VBA
Scopul unui ComboBox este de a alege alegerea utilizatorilor. Pentru a prelua alegerea utilizatorilor, trebuie să utilizați acest cod:
123 | Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value |
Selecția utilizatorilor se află în atribut Valoare de Sheet1.cmbComboBox obiect. Această valoare este atribuită variabilei strSelectedItem:
Imagine 6. Obțineți o valoare selectată din ComboBox în VBA
Am selectat Julia în ComboBox și a executat procedura. După cum puteți vedea în imaginea 5, valoarea strSelectedItem este Julia, care este valoarea pe care am selectat-o. Acum puteți procesa această variabilă în continuare în cod.
Ștergeți un ComboBox
Dacă doriți să ștergeți o ComboBox în VBA, trebuie să utilizați clar Metodă de Sheet1.lstComboBox obiect. Acesta va șterge toate articolele din ComboBox. Iată codul:
1 | Sheet1.cmbComboBox.Clear |
Când executăm codul, obținem ComboBox-ul gol:
Imagine 7. Ștergeți ComboBox
Utilizați un ComboBox într-un formular de utilizator
După cum am menționat, Combobox 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:
Imaginea 8. 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 ComboBox pentru a-l crea în Userform.
Imaginea 9. Introduceți un ComboBox în Formularul de utilizare
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.cmbComboBox.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ă Userform și completează Combobox cu aceste 5 nume:
Imaginea 10. ComboBox-ul 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.