/ / "Excel VBA Multicolumn Combo Box"

"Excel VBA Multicolumn Combo Box"

Žemiau apžvelgsime programą Excel VBA kuri sukuria Userform, kuriame yra a daugiasluoksnis kombinuotasis laukelis.

"Userform", kurį ketiname kurti, atrodo taip:

"Multicolumn Combo Box" programoje "Excel VBA"

Norėdami sukurti šį Userform, atlikite šiuos veiksmus.

1. Atidarykite "Visual Basic" redaktorių. Jei "Project Explorer" nematoma, spustelėkite "View", "Project Explorer".

2. Spustelėkite Insert, Userform. Jei įrankių dėžė automatiškai pasirodys, spustelėkite Rodyti, įrankių dėžutę. Jūsų ekranas turėtų būti nustatytas žemiau.

"Userform" ekrano sąranka "Excel VBA"

3. Pridėti etiketę, kombinuotą laukelį ir komandų mygtukus. Kai tai bus baigta, rezultatas turėtų atitikti anksčiau pateiktą "Userform" paveikslėlį. Pavyzdžiui, sukurkite kombinuotą dėžutę, spustelėdami ComboBox iš įrankių juostos. Tada galite vilkti Combo lauką Userform.

4. Galite keisti valdiklių pavadinimus ir antraštes. Vardai naudojami "Excel VBA" kodu. Subtitrai yra tie, kurie rodomi ekrane. Gera praktika pakeisti kontrolinių pavadinimų pavadinimus, tačiau čia nereikia, nes šiame pavyzdyje turime tik keletą kontrolių. Norėdami pakeisti Userform, etiketės ir komandų mygtukų antraštę, spustelėkite View, Properties Window ir spustelėkite kiekvieną valdiklį.

5. Norėdami parodyti "Userform", į savo darbalapį pridėkite komandų mygtuką ir pridėkite šią kodo eilutę:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Dabar ketiname sukurti Sub UserForm_Initialize. Kai naudojate "Show" metodą "Userform", šis pogrupis automatiškai bus įvykdytas.

6. Atidarykite "Visual Basic" redaktorių.

7. "Project Explorer" dešiniuoju pelės mygtuku spustelėkite "UserForm1" ir spustelėkite "Peržiūrėti kodą".

8. Iš kairės išskleidžiamojo sąrašo pasirinkite Userform. Iš dešiniojo išskleidžiamojo sąrašo pasirinkite Inicijuoti.

9. Įtraukite šias kodo eilutes:

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

Paaiškinimas: Pirmoji kodo eilutė nustato kombinuotųjų langelių stulpelių skaičių iki 2. Vietoj nustatymo stulpelių skaičiaus vykdymo metu taip pat galite konfigūruoti šį nustatymą projektavimo metu. Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite kombinuotą dėžės valdiklį, spustelėkite Ypatybės ir nustatykite nuosavybės ColumnCount reikšmę 2. Tada deklaruojame ir inicijuojame dvimačio masyvą. Paskutinė kodinė eilutė priskiria masyvą prie sudėtinių laukų.

Dabar sukūrėme pirmąją "Userform" dalį. Nors tai atrodo gerai tvarkoma, dar niekas nebus įvykdytas, kai spustelėsime Userform komandų mygtukus.

10. "Project Explorer" dukart spustelėkite "UserForm1".

11. Dukart spustelėkite mygtuką Gerai.

12. Įtraukite šias kodo eilutes:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

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

End Sub

Pastaba: šios kodo eilutės uždaro "Excel VBA Userform" ir parodo pasirinktą elementą ir žanrą. Išrašas "On Error Resume Next" ignoruoja klaidą, kai vartotojas užpildo savo filmą (šiuo atveju nėra žanro).

13. Dukart spustelėkite mygtuką Atšaukti.

14. Įtraukite šią kodo eilutę:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Rezultatas, kai pasirenkate greitį ir spustelėkite Gerai.

Multicolumn Combo Box rezultatas

Multicolumn Combo Box rezultatas

Taip pat perskaitykite: