Залежні комбо -поля Excel VBA - Прості макроси Excel

Зміст

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

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

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

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

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

2. Натисніть Вставити, форма користувача. Якщо панель інструментів не з'являється автоматично, натисніть Перегляд, Панель інструментів. Ваш екран слід налаштувати, як показано нижче.

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

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

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

Приватна підкомандаButton1_Click ()
UserForm1.Show
End Sub

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

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

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

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

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

Приватний підкористувач UserForm_Initialize ()
За допомогою ComboBox1
.AddItem "Тварини"
.Додаток "Спорт"
.Додаток "Їжа"
Закінчити з
End Sub

Пояснення: Ці рядки коду заповнюють перше поле зі списком.

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

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

11. Двічі клацніть перше поле зі списком.

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

Приватний підкомбокс ComboBox1_Change ()
Індекс затемнення як ціле число
index = ComboBox1.ListIndex
ComboBox2.Clear
Виберіть Покажчик випадків
Випадок = 0
За допомогою ComboBox2
.AddItem "Собака"
.Додаток "Кішка"
.Додаток "Кінь"
Закінчити з
Випадок = 1
За допомогою ComboBox2
.Додаток "Теніс"
.AddItem "Плавання"
.AddItem "Баскетбол"
Закінчити з
Випадок = 2
За допомогою ComboBox2
.AddItem "Млинці"
.AddItem "Піца"
.AddItem "Китайська"
Закінчити з
Кінець Виберіть
End Sub

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

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

14. Додайте такий рядок коду:

Приватна підкомандаButton1_Click ()
Діапазон ("A1"). Значення = ComboBox2.Value
End Sub

Результат:

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave