Вікно списку VBA - вибраний елемент

У цій статті буде показано, як працювати з вибраним елементом у вікні списку в Excel VBA.

Поля зі списком значною мірою використовуються у формах VBA, але також можуть використовуватися у вашому робочому аркуші Excel. Вони показують користувачам список опцій, один або кілька з яких користувач може вибрати.

Створення списку у формі VBA

Щоб створити поле зі списком у формі VBA, нам спочатку потрібно створити UserForm.

Після того, як ви створили форму, виберіть елемент керування «Список» у панелі інструментів, а потім перетягніть, щоб створити поле зі списком у формі.

Додавання значень до списку

У події ініціалізації форми введіть такий код. У вікні списку будуть зібрані значення, які зберігаються у діапазоні клітинок на вашому робочому аркуші Excel.

123456 Приватний підкористувач UserForm_Initialize ()Зменшити діапазон як діапазонДля кожного дзвінка в діапазоні ("A1: A50")Me.lstState.AddItem rng.ValueНаступний дзвінокEnd Sub

Коли ми запускаємо форму, вікно списку буде показано, як показано на зображенні нижче:

Вибір значень зі списку

За замовчуванням одне значення можна вибрати у вікні списку у формі користувача. Однак це можна змінити, змінивши властивість Multi-Select у списку.

Натисніть на поле зі списком, щоб вибрати його, а потім у вікні Властивості змініть властивість Multi-Select з 0-frmMultiSelectSingle до 1-frmMultiSelectMulti.

Тепер, коли ми запускаємо форму, ми можемо вибрати декілька варіантів у вікні списку.

Якщо ми змінимо цей варіант 2-frmMultiSelectExtended, це означає, що ми можемо вибрати одне зі значень, а потім, утримуючи клавішу SHIFT, виберіть інше значення далі в списку, і також будуть вибрані всі елементи між двома вибраними значеннями.

Програмування VBA | Генератор коду працює для вас!

Робота з вибраними значеннями у VBA

Залежно від типу параметра, який ми використовували для властивості Multi-Select у списку, існує кілька способів, якими ми можемо використовувати значення або значення, вибрані у вікні списку у коді VBA.

Присвоєння значення змінній

Ми можемо використовувати After_Update подія списку, щоб призначити змінне значення, вибране.

По -перше, давайте створимо змінну рівня модуля у верхній частині модуля форми.

Під словами, Опція явна, створіть наступну рядкову змінну.

1 Затемнити strState як рядок.

Після того, як ми створили цю змінну, ми можемо двічі клацнути на списку, щоб перейти до коду за формою, або натиснути на кнопку коду у редакторі VBE.

Подія клацання у списку буде створено автоматично. Виберіть After_Update Подія формує перелік доступних процедур.

У події After_Update введіть такий код:

123 Приватний суб lstState_AfterUpdate ()strState = Me.lstStateEnd Sub

ПРИМІТКА. Подію Click можна видалити, оскільки вона не потрібна.

Тепер, якщо ми запустимо форму і натиснемо на поле зі списком, вибране значення буде збережено у змінній. Щоб перевірити це, ми можемо поставити точку BREAK у коді.

Тепер, коли ми запускаємо форму, якщо ми натискаємо на поле зі списком, код перейде в режим DEBUG і зупиниться на нашій точці зупинки. Якщо ми натиснемо клавішу F8 на клавіатурі, щоб перейти на крок далі в коді, змінна буде заповнена вибраним елементом у списку.

Ми можемо переглянути це значення, поклавши мишу на змінну.

АБО

Ми можемо переглянути значення у вікні Негайне.

Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!

Використання кнопки команди для повернення значення в Excel

По -перше, ми створюємо командну кнопку у формі, щоб мати кнопку OK, щоб повернути значення або значення, вибрані у списку, до Excel.

Виберіть елемент керування Кнопка команди, а потім клацніть і перетягніть у формі, щоб створити кнопку.

У вікні Властивості змініть назву кнопки на cmdOKта змініть підпис і прискорювач кнопки.

Прискорювач призначений для того, щоб користувач у цьому випадку за допомогою клавіатури активував кнопку Alt+O буде активувати кнопку.

Щоб кнопка команди запрацювала, нам потрібно додати за нею код, щоб при натисканні на кнопку код запускався. Це називається подією натискання кнопки.

Щоб перейти до події кліку, двічі клацніть на кнопку у вікні конструктора форми. Подія клацання буде створена автоматично, оскільки ця подія найчастіше використовується для командних кнопок.

Введіть наступний код у подію клацання кнопки команди.

123 Приватний саб cmdOK_Click ()Діапазон ("E1") = strStateEnd Sub

Код підбере змінну, яку ми оголосили в події After_Update ListBox, і поверне значення до діапазону в Excel.

Крім того, ми можемо забрати значення безпосередньо зі списку без використання змінної.

123 Приватний саб cmdOK_Click ()Діапазон ("E1") = me.lstStateEnd Sub

Коли ми запускаємо форму, вибране значення буде повернуто до Excel, коли ми натиснемо кнопку OK.

Вибір кількох значень

Якщо ми встановили властивість багаторазового вибору для списку на 1 або 2, що дозволяє нам вибрати кілька значень у списку, то код для вибору цих значень дещо відрізняється.

The After_Update подія більше не запускається під час вибору значень у списку - тому ми не можемо використовувати цю подію.

Ми все ще можемо використовувати подію натискання кнопки команди, але нам потрібно повторити значення, вибрані у списку, щоб повернути їх до Excel.

У командній кнопці Подія Натисніть наступний код.

12345678910 Приватний саб cmdOK_Click ()Dim x як ціле числоДіапазон ("E1"). ВиберітьДля x = 0 до Me.lstState.ListCount - 1Якщо Me.lstState.Selected (x) = True ТодіActiveCell = Me.lstState.List (x)ActiveCell.Offset (1, 0) .ВиберітьЗакінчити ЯкщоДалі xEnd Sub

Тепер, коли ми запускаємо форму, на аркуш Excel повертаються лише вибрані значення.

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

wave wave wave wave wave