/ / Excel VBA závislé kombinované boxy

VBA závislé kombinácie VBA

Nižšie sa pozrieme na program v sekcii Excel VBA ktorý vytvorí Userform, ktorý obsahuje závislé políčka so zoznamom, Forma User, ktorú chceme vytvoriť, vyzerá takto:

Používateľ vyberie Zvína z rozbaľovacieho zoznamu. Výsledkom je, že používateľ môže z druhého rozbaľovacieho zoznamu vybrať zviera.

Závislé kombinované boxy v programe Excel VBA

Používateľ vyberie z rozbaľovacieho zoznamu položku Šport. V dôsledku toho môže používateľ vybrať šport z druhého rozbaľovacieho zoznamu.

Závislé kombinované boxy v programe Excel VBA

Ak chcete vytvoriť tento Userform, vykonajte nasledujúce kroky.

1. Otvorte Editor jazyka. Ak nástroj Project Explorer nie je viditeľný, kliknite na položku Zobraziť, Project Explorer.

2. Kliknite na Insert, Userform. Ak sa panel nástrojov nezobrazí automaticky, kliknite na položku Zobraziť, panel s nástrojmi. Obrazovka by mala byť nastavená tak, ako je uvedené nižšie.

Nastavenie obrazovky používateľa v programe Excel VBA

3. Pridajte pole so zoznamom (najprv vľavo, druhé vpravo) a príkazové tlačidlo. Po dokončení tohto výsledku by mal byť výsledok v súlade s obrázkom užívateľa, ktorý je zobrazený skôr. Napríklad vytvorte ovládací prvok poľa kliknutím na ComboBox z panelu nástrojov. Potom môžete pretiahnuť pole so zoznamom na Userform.

4. Môžete zmeniť názvy a popisy ovládacích prvkov. Názvy sa používajú v kóde programu Excel VBA. Titulky sú tie, ktoré sa zobrazujú na vašej obrazovke. Správna prax je zmeniť mená ovládacích prvkov, nie je to však potrebné, pretože v tomto príklade máme len niekoľko kontrol. Ak chcete zmeniť nadpis Userform a príkazového tlačidla, kliknite na položku Zobraziť, okno Vlastnosti a kliknite na každý ovládací prvok.

5. Ak chcete zobraziť Userform, umiestnite do pracovného hárka príkazové tlačidlo a pridajte nasledujúci riadok kódu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Teraz vytvoríme Sub UserForm_Initialize. Ak použijete metódu Show for Userform, táto podstata sa automaticky vykoná.

6. Otvorte Editor jazyka.

7. V programe Project Explorer kliknite pravým tlačidlom na UserForm1 a potom kliknite na View Code.

8. V ľavom rozbaľovacom zozname vyberte položku Userform. V pravom rozbaľovacom zozname vyberte možnosť Inicializovať.

9. Pridajte nasledujúce riadky kódu:

Private Sub UserForm_Initialize()

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

End Sub

Vysvetlenie: Tieto riadky kódu vyplňujú prvé pole so zoznamom.

Teraz sme vytvorili prvú časť Userform. Aj keď to vyzerá dobre, nič sa nestane, keď vyberieme položku z prvého poľa so zoznamom.

10. V programe Project Explorer dvakrát kliknite na UserForm1.

11. Dvakrát kliknite na prvé pole so zoznamom.

12. Pridajte nasledujúce riadky kódu:

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

vysvetlenie: Program Excel VBA používa hodnotu indexu premenných na otestovanie každého nasledujúceho príkazu Case, aby zistil, s ktorými položkami sa má vyplniť druhá pole so zoznamom. Ak chcete získať viac informácií o štruktúre Select Case, prejdite v našom programe Select Case.

13. Dvakrát kliknite na tlačidlo Import.

14. Pridajte nasledujúci riadok kódu:

Private Sub CommandButton1_Click()

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

End Sub

výsledok:

Závislé kombinované boxy v programe Excel VBA

Tiež si prečítajte: