VBA ComboBox

ComboBoxes позволяват на потребителите да избират опция от падащото меню. ComboBoxes могат да бъдат създадени във VBA UserForms или с работен лист на Excel. В този урок ще научите как да създавате и манипулирате ComboBoxes във VBA и в работни листове на Excel.

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

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

Създайте ComboBox в работен лист на Excel

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

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

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

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

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

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

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

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

Когато щракнете върху падащото меню, ще получите 5 имена за избор (Джон, Майкъл, Дженифър, Лили и Робърт):

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

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

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

Ако искате да активирате това, трябва да отидете на Имоти на ComboBox и задайте атрибута ListFillRange до диапазона на клетките (в нашия случай E2: E5):

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

Свързахме нашия ComboBox с диапазона E2: E5, където поставяме имената, които искаме (Нейтън, Хари, Джордж, Роберта). В резултат на това ComboBox вече е попълнен със следните имена:

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

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

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

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

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

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

Избрахме Джулия в ComboBox и изпълни процедурата. Както можете да видите на Изображение 5, стойността на strSelectedItem е Джулия, която е стойността, която избрахме. Сега можете да обработите тази променлива по -нататък в кода.

Изчистете ComboBox

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

1 Sheet1.cmbComboBox.Clear

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

Изображение 7. Изчистете ComboBox

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

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

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

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

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

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

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

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

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

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

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

wave wave wave wave wave