VBA Listbox

Във VBA можете да създадете Listbox където потребителят може да избере една от изброените опции. Listbox често се използва в потребителски форми, но може да се използва и в работен лист. В този урок ще научите как да създавате, попълвате и изтривате Listbox. Ще видите също как да получите потребителски избор във VBA и да го използвате в код.

Ако искате да научите как да създадете ComboBox, щракнете тук: VBA ComboBox

Ако искате да научите как да създадете квадратче за отметка, щракнете тук: VBA Checkbox

Създайте Listbox

За да вмъкнете Listbox в работния лист, трябва да отидете на Раздел за програмисти, щракнете Вмъкване и под ActiveX Controls изберете Списъчно поле:

Изображение 1. Вмъкнете Listbox в работния лист

Когато изберете Listbox, който сте вмъкнали, можете да кликнете върху Имоти под Раздел за програмисти:

Изображение 2. Променете свойствата на Listbox

Тук можете да зададете различни свойства на Listbox. За начало променихме атрибута Име да се lstListBox. Сега можем да използваме Listbox с това име във VBA кода.

Попълнете Listbox във VBA код

Първо, трябва да попълним Listbox със стойности. В повечето случаи при отваряне на работната книга трябва да се попълни Listbox. Поради това трябва да поставим код за попълване на Listbox в обект Работна тетрадка, процедура Отворено. Тази процедура се изпълнява всеки път, когато потребител отвори работната книга. Ето кода:

123456789 С Sheet1.lstListBox.AddItem "Джон".AddItem "Майкъл".AddItem "Дженифър".AddItem "Lilly".AddItem "Робърт"Край с

Както можете да видите на Изображение 3, ние попълнихме нашия списък с 5 имена (Джон, Майкъл, Дженифър, Лили и Робърт):

Изображение 3. Попълнете Listbox във VBA

Попълнете Listbox от диапазон от клетки

Друг възможен начин за попълване на Listbox е да позволите на потребителя да го направи. Listbox може да бъде свързан с диапазона от клетки. Следователно всеки път, когато потребител въведе нова стойност в диапазона от клетки, Listbox ще се актуализира с тази стойност.

Ако искате да активирате това, трябва да отидете на Имоти на ListBox и задайте атрибута ListFillRange:

Изображение 4. Попълнете Listbox от диапазона на клетките

Свързахме нашия Listbox с обхвата E2: E5, където поставяме имената, които искаме (Nathan, Harry, George, Roberta). В резултат на това Listbox вече е попълнен с тези имена.

Вземете избран елемент от Listbox във VBA

Целта на Listbox е да даде избор на потребителите. За да извлечете стойност, избрана от потребител, трябва да използвате този код:

123 Dim strSelectedItem като вариантstrSelectedItem = Sheet1.lstListBox.Value

Изборът на потребители е в атрибута Стойност на Sheet1.lstListbox обект. Тази стойност се присвоява на променливата strSelectedItem:

Изображение 5. Вземете избрана стойност от Listbox във VBA

Избрахме Хари в Listbox и изпълни процедурата. Както можете да видите на Изображение 5, стойността на strSelectedItem е Хари, която е стойността, която избрахме. Освен това можете да обработите тази променлива в кода.

Изчистете Listbox

За да изчистите Listbox във VBA, трябва да използвате Ясно метод на Sheet1.lstListBox обект. Той ще изтрие всички елементи от Listbox. Ето кода:

1 Sheet1.lstListBox.Clear

Когато изпълним кода, получаваме празното Listbox:

Изображение 6. Изчистете Listbox

Използвайте Listbox в Userform

Както споменахме, Listbox най -често се използва в потребителски форми. За да обясним как можете да го направите, първо ще вмъкнем Userform. В редактора на VBA щракнете с десния бутон върху името на модула, щракнете върху Вмъкване и изберете UserForm:

Изображение 7. Поставете потребителска форма

За да се покажат контролите за вмъкване, трябва да активирате Кутия за инструменти. За да направите това, кликнете върхуКутия за инструменти икона в лентата с инструменти. След това ще получите прозорците с всички налични контроли. Можете да кликнете върху ListBox за да го създадете в Userform.

Изображение 8. Вмъкнете Listbox в Userform

Ще кръстим ComboBox cmbComboBox. За да го попълним със стойности, трябва да поставим следния код в метода Инициализирайте на обекта UserForm:

12345678910111213 Частен подпотребителForm_Initialize ()С UserForm1.lstListBox.AddItem "Джон".AddItem "Майкъл".AddItem "Дженифър".AddItem "Lilly".AddItem "Робърт"Край сEnd Sub

Този код се задейства всеки път, когато потребител стартира Userform и попълва Listbox с тези 5 имена:

Изображение 9. Listbox със стойности в Userform

Ако искате да получите избрана стойност от ComboBox, трябва да използвате същата логика за Combobox в работен лист, която е обяснена по -рано в статията.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave