Pola kombi zależne od Excela VBA - łatwe makra w Excelu

Spisie treści

Poniżej przyjrzymy się programowi w Excel VBA który tworzy formularz użytkownika, który zawiera zależne pola kombi. Formularz użytkownika, który stworzymy, wygląda następująco:

Użytkownik wybiera Zwierzęta z listy rozwijanej. W rezultacie użytkownik może wybrać zwierzę z drugiej listy rozwijanej.

Użytkownik wybiera Sport z listy rozwijanej. W rezultacie użytkownik może wybrać sport z drugiej listy rozwijanej.

Aby utworzyć ten formularz użytkownika, wykonaj następujące kroki.

1. Otwórz Edytor Visual Basic. Jeśli Eksplorator projektu nie jest widoczny, kliknij Widok, Eksplorator projektu.

2. Kliknij Wstaw, Formularz użytkownika. Jeśli Przybornik nie pojawi się automatycznie, kliknij Widok, Przybornik. Twój ekran powinien być skonfigurowany jak poniżej.

3. Dodaj pola kombi (pierwsze po lewej, drugie po prawej) i przycisk polecenia. Po zakończeniu wynik powinien być zgodny z obrazem formularza użytkownika pokazanym wcześniej. Na przykład utwórz kontrolkę pola kombi, klikając ComboBox w przyborniku. Następnie możesz przeciągnąć pole kombi na formularzu użytkownika.

4. Możesz zmienić nazwy i podpisy kontrolek. Nazwy są używane w kodzie Excel VBA. Napisy to te, które pojawiają się na ekranie. Dobrą praktyką jest zmiana nazw kontrolek, ale nie jest to konieczne, ponieważ w tym przykładzie mamy tylko kilka kontrolek. Aby zmienić podpis przycisku Userform i polecenia, kliknij Widok, okno Właściwości i kliknij każdą kontrolkę.

5. Aby wyświetlić formularz użytkownika, umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

Prywatna Sub CommandButton1_Click()
UserForm1.Pokaż
Napis końcowy

Teraz utworzymy Sub UserForm_Initialize. W przypadku użycia metody Show dla formularza użytkownika ten podrzędny zostanie automatycznie wykonany.

6. Otwórz Edytor Visual Basic.

7. W Project Explorer, kliknij prawym przyciskiem myszy UserForm1, a następnie kliknij View Code.

8. Wybierz Formularz użytkownika z lewej listy rozwijanej. Wybierz Zainicjuj z prawej listy rozwijanej.

9. Dodaj następujące linie kodu:

Prywatna Sub UserForm_Initialize()
Z ComboBox1
.AddItem "Zwierzęta"
.AddItem "Sport"
.Dodaj pozycję "Żywność"
Kończyć z
Napis końcowy

Wyjaśnienie: Te wiersze kodu wypełniają pierwsze pole kombi.

Stworzyliśmy teraz pierwszą część Userform. Choć już wygląda ładnie, nic się jeszcze nie stanie, gdy wybierzemy przedmiot z pierwszego pola kombi.

10. W Eksploratorze projektów kliknij dwukrotnie UserForm1.

11. Kliknij dwukrotnie pierwsze pole kombi.

12. Dodaj następujące linie kodu:

Prywatne pole podrzędne ComboBox1_Change()
Wskaźnik Dim As Integer
indeks = ComboBox1.ListIndex
ComboBox2.Wyczyść
Wybierz indeks sprawy
Wielkość liter = 0
Z ComboBox2
.AddItem "Pies"
.AddItem "Kot"
.AddItem "Koń"
Kończyć z
Wielkość liter = 1
Z ComboBox2
.AddItem "Tenis"
.AddItem "pływanie"
.AddItem "Koszykówka"
Kończyć z
Wielkość liter = 2
Z ComboBox2
.AddItem "Naleśniki"
.Dodaj pozycję „Pizza”
.AddItem "Chiński"
Kończyć z
Koniec Wybierz
Napis końcowy

Wyjaśnienie: Excel VBA używa wartości indeksu zmiennej do testowania każdej kolejnej instrukcji Case, aby zobaczyć, którymi elementami należy wypełnić drugie pole kombi. Zapoznaj się z naszym programem Select Case, aby dowiedzieć się więcej o strukturze Select Case.

13. Kliknij dwukrotnie przycisk Importuj.

14. Dodaj następującą linię kodu:

Prywatna Sub CommandButton1_Click()
Zakres("A1").Value = ComboBox2.Value
Napis końcowy

Wynik:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave