/ / "Excel VBA" priklausomos "Combo" dėžutės

"Excel VBA" priklausomos "Combo" dėžutės

Žemiau apžvelgsime programą Excel VBA kuri sukuria vartotojo formą, kurioje yra priklausomos sudėtinės dėžutės. "Userform", kurį ketiname kurti, atrodo taip:

Vartotojas iš sąrašo parenka gyvūnus. Dėl to vartotojas gali pasirinkti gyvūną iš antrojo išskleidžiamojo sąrašo.

Dependent Combo dėžutės Excel VBA

Vartotojas išskleidžiamajame sąraše pasirenka sportą. Dėl to vartotojas gali pasirinkti sportą iš antrojo išskleidžiamojo sąrašo.

Dependent Combo dėžutės 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 kombinuotus laukelius (pirmas kairysis, antrasis dešinėje) ir komandinis mygtukas. 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 ir komandų mygtuko 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()

With ComboBox1
    .AddItem "Animals"
    .AddItem "Sports"
    .AddItem "Food"
End With

End Sub

Paaiškinimas: šios kodo eilutės užpildo pirmąjį kombinuotąjį laukelį.

Dabar sukūrėme pirmąją "Userform" dalį. Nors tai jau atrodo tvarkinga, dar nieko neįvyks, kai mes pasirinksime elementą iš pirmojo kombinuotojo laukelio.

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

11. Dukart spustelėkite pirmąjį kombinuotąjį laukelį.

12. Įtraukite šias kodo eilutes:

Private Sub ComboBox1_Change()

Dim index As Integer
index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index
    Case Is = 0
        With ComboBox2
            .AddItem "Dog"
            .AddItem "Cat"
            .AddItem "Horse"
        End With
    Case Is = 1
        With ComboBox2
            .AddItem "Tennis"
            .AddItem "Swimming"
            .AddItem "Basketball"
        End With
    Case Is = 2
        With ComboBox2
            .AddItem "Pancakes"
            .AddItem "Pizza"
            .AddItem "Chinese"
        End With
End Select

End Sub

Paaiškinimas: "Excel VBA" naudoja kintamojo indekso vertę, kad išbandytumėte kiekvieną kitą atvejo ataskaitą, kad pamatytumėte, su kokiais elementais turėtų būti užpildytas antrasis sudėtinis laukas. Norėdami sužinoti daugiau apie "Select Case" struktūrą, eikite į "Select Case" programą.

13. Dukart spustelėkite mygtuką "Import".

14. Įtraukite šią kodo eilutę:

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Rezultatas:

Dependent Combo dėžutės Excel VBA

Taip pat perskaitykite: