/ / Excel VBA Залежні Combo коробки

Залежні Combo коробки VBA

Нижче ми розглянемо програму в Росії Excel VBA який створює Userform, який містить залежні комбо-коробки. Формат Userform, який ми збираємося створити, виглядає наступним чином:

Користувач вибирає Тварини зі спадного списку. У результаті користувач може вибрати тварину з другого розкривного списку.

Залежні комбо-бокси в Excel VBA

Користувач вибирає спорт зі спадного списку. У результаті користувач може вибрати спорт з другого розкривного списку.

Залежні комбо-бокси в Excel VBA

Щоб створити цю Userform, виконайте наступні кроки.

1. Відкрийте редактор Visual Basic. Якщо Провідник проекту не відображається, натисніть Переглянути, Провідник проекту.

2. Клацніть Insert, Userform. Якщо панель інструментів не відображається автоматично, натисніть Переглянути, Панель інструментів. Ваш екран повинен бути налаштований як показано нижче.

Налаштування екрана Userform у програмі Excel VBA

3. Додайте комбо-поля (спочатку ліворуч, другий справа) та кнопку команди. Після того, як це буде завершено, результат має відповідати картині формату Userform, показаному раніше. Наприклад, створіть комбінацію клавіш, натиснувши ComboBox з панелі інструментів. Далі ви можете перетягнути комбіноване поле в Userform.

4 Ви можете змінювати імена та підписи елементів керування. Імена використовуються в коді Excel VBA. Підписи - це ті, які з'являються на вашому екрані. Рекомендовано змінити назви елементів керування, але тут немає необхідності, оскільки в цьому прикладі ми маємо лише декілька елементів керування. Щоб змінити заголовок формату Userform і команду, натисніть кнопку «Перегляд», «Властивості» та клацніть по кожному елементу керування.

5. Щоб показати Userform, помістіть на вашій робочій клавіші команду та додайте наступну кодову рядок:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ми збираємось створити Sub UserForm_Initialize. Якщо ви використовуєте метод Show для форми Userform, цей підрозділ буде автоматично виконано.

6. Відкрийте редактор Visual Basic.

7. У Провіднику проекту клацніть правою кнопкою миші на UserForm1 і натисніть кнопку Перегляд коду.

8. Оберіть Userform з розкривного списку ліворуч. У спадному списку праворуч виберіть «Ініціалізувати».

9. Додайте наступні кодові рядки:

Private Sub UserForm_Initialize()

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

End Sub

Пояснення: ці кодовые рядки заповнюють перше поле з комбінацією.

Тепер ми створили першу частину Userform. Хоча це виглядає вже акуратно, ще нічого не станеться, коли ми виберемо елемент із першого комбінованого вікна.

10. У Провіднику проекту двічі клацніть на UserForm1.

11. Двічі клацніть на першому комбінованому вікні.

12. Додайте наступні кодові рядки:

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

Пояснення: Excel VBA використовує значення індексу змінної, щоб перевірити кожен наступний опис справи, щоб побачити, з якими елементами слід заповнити другу комбінацію. Перейдіть за програмою Select Case, щоб дізнатись більше про структуру Select Case.

13. Двічі клацніть на кнопці «Імпорт».

14. Додайте наступну кодову лінію:

Private Sub CommandButton1_Click()

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

End Sub

Результат:

Залежні комбо-бокси в Excel VBA

Також читайте: