VBA ComboBox

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.

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

wave wave wave wave wave