/ / Excel VBA Multicolumn Combo Box

Excel VBA Multicolumn Combo Box

Mai jos ne vom uita la un program în Excel VBA care creează o Userform care conține a caseta combo cu mai multe coloane.

Formularul de utilizator pe care îl vom crea arată după cum urmează:

Multicolumn Combo Box în Excel VBA

Pentru a crea această formă de utilizator, executați următorii pași.

1. Deschideți Editorul Visual Basic. Dacă Project Explorer nu este vizibil, faceți clic pe Vizualizare, Project Explorer.

2. Faceți clic pe Inserare, Formă utilizator. Dacă Toolbox-ul nu apare automat, faceți clic pe View (Vizualizare), Toolbox (Instrumente). Ecranul dvs. trebuie să fie configurat ca mai jos.

Setarea ecranului utilizatorului în Excel VBA

3. Adăugați eticheta, caseta combo și butoanele de comandă. Odată terminată, rezultatul ar trebui să fie în concordanță cu imaginea formularului de utilizator afișat mai devreme. De exemplu, creați un control al cutiei combo făcând clic pe ComboBox din caseta de instrumente. Apoi, puteți trage o casetă combo pe Userform.

4. Puteți modifica numele și subtitrarea comenzilor. Numele sunt utilizate în codul Excel VBA. Titlurile sunt cele care apar pe ecran. Este o practică bună schimbarea numelor comenzilor, dar nu este necesară aici, deoarece avem doar câteva controale în acest exemplu. Pentru a modifica legenda butoanelor Userform, eticheta și comanda, faceți clic pe Vizualizare, pe fereastra de proprietăți și faceți clic pe fiecare comandă.

5. Pentru a afișa Userform, plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Acum vom crea Sub UserForm_Initialize. Când utilizați metoda de afișare pentru formularul de utilizator, această secțiune va fi executată automat.

6. Deschideți Editorul Visual Basic.

7. În Project Explorer, faceți clic dreapta pe UserForm1 și apoi faceți clic pe View Code (Vizualizare cod).

8. Selectați Format utilizator din lista verticală stânga. Selectați Inițializare din lista derulantă din dreapta.

9. Adăugați următoarele linii de cod:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Explicaţie: Prima linie de cod stabilește numărul de coloane din caseta combo la 2. În loc să setați numărul de coloane la timpul de execuție, puteți de asemenea să configurați această setare la momentul proiectării. Pentru a realiza acest lucru, faceți clic dreapta pe controlul cutie combo, faceți clic pe Proprietăți și setați proprietatea ColumnCount la 2. Apoi, declarăm și inițializăm o matrice bidimensională. Ultima linie de cod atribuie matricei în caseta combo.

Am creat acum prima parte a Userform. Deși arată deja bine, nimic nu se va întâmpla încă atunci când faceți clic pe butoanele de comandă de pe Userform.

10. În Project Explorer, faceți dublu clic pe UserForm1.

11. Faceți dublu clic pe butonul OK.

12. Adăugați următoarele linii de cod:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Notă: aceste linii de cod închid formularul Excel VBA și afișează elementul și genul selectat. Instrucțiunea "Pe eroare Reluați în continuare" ignoră eroarea când utilizatorul își completează propriul film (în acest caz, nu există niciun gen disponibil).

13. Faceți dublu clic pe butonul Anulare.

14. Adăugați următoarea linie de cod:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Rezultat atunci când selectați Speed ​​și faceți clic pe OK.

Rezultatul cutie multilaterală

Rezultatul cutie multilaterală

De asemenea, citiți: