"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:
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.
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ę:
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:
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:
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ę:
Unload Me
End Sub
Rezultatas, kai pasirenkate greitį ir spustelėkite Gerai.