Комбинирана кутия с много колони на Excel VBA - Лесни макроси на Excel

Съдържание

По -долу ще разгледаме програма в Excel VBA който създава потребителска форма, която съдържа a комбинирано поле с много колони.

Потребителската форма, която ще създадем, изглежда, както следва:

За да създадете тази потребителска форма, изпълнете следните стъпки.

1. Отворете редактора на Visual Basic. Ако Project Explorer не се вижда, щракнете върху View, Project Explorer.

2. Щракнете върху Вмъкване, Потребителска форма. Ако Toolbox не се появи автоматично, щракнете върху View, Toolbox. Екранът ви трябва да бъде настроен както е показано по -долу.

3. Добавете етикета, комбинираното поле и командните бутони. След като това приключи, резултатът трябва да бъде в съответствие с картината на Userform, показана по -рано. Например, създайте контрола за комбинирано поле, като щракнете върху ComboBox от Toolbox. След това можете да плъзнете комбинирано поле в Userform.

4. Можете да промените имената и надписите на контролите. Имената се използват в кода на Excel VBA. Надписите са тези, които се появяват на екрана ви. Добра практика е да промените имената на контролите, но това не е необходимо тук, защото в този пример имаме само няколко контроли. За да промените надписа на Userform, етикет и командни бутони, щракнете върху View, Properties Window и кликнете върху всяка контрола.

5. За да покажете Userform, поставете команден бутон на работния си лист и добавете следния код:

Частна подкоманда CommandButton1_Click ()
UserForm1.Show
End Sub

Сега ще създадем Sub UserForm_Initialize. Когато използвате метода Show за Userform, този подфайл ще се изпълни автоматично.

6. Отворете редактора на Visual Basic.

7. В Project Explorer щракнете с десния бутон върху UserForm1 и след това щракнете върху Преглед на кода.

8. Изберете Userform от левия падащ списък. Изберете Инициализиране от десния падащ списък.

9. Добавете следните кодови редове:

Частен подпотребителForm_Initialize ()
ComboBox 1.ColumnCount = 2
Затъмнете филмите (1 до 5, 1 до 2) като низ
Dim i като цяло число, j като цяло число
Films (1, 1) = "Властелинът на пръстените"
Филми (2, 1) = "Скорост"
Films (3, 1) = "Междузвездни войни"
Films (4, 1) = "Кръстникът"
Films (5, 1) = "Художествена литература"
Films (1, 2) = "Приключение"
Films (2, 2) = "Екшън"
Филми (3, 2) = "Научна фантастика"
Films (4, 2) = "Престъпност"
Филми (5, 2) = "Драма"
ComboBox1.List = Филми
End Sub

Обяснение: Първият кодов ред задава броя колони на комбинираното поле на 2. Вместо да задавате броя на колоните по време на изпълнение, можете също да конфигурирате тази настройка по време на проектирането. За да постигнете това, щракнете с десния бутон на мишката върху полето за комбинирано поле, щракнете върху Свойства и задайте свойството ColumnCount на 2. След това декларираме и инициализираме двуизмерен масив. Последният код код присвоява масива на комбинираното поле.

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

10. В Project Explorer щракнете двукратно върху UserForm1.

11. Щракнете двукратно върху бутона OK.

12. Добавете следните кодови редове:

Частна подкоманда CommandButton1_Click ()
Разтоварвай Ме
MsgBox "Избрахте" & ComboBox1.Value
Вкл. Грешка Възобновяване Напред
MsgBox "Харесваш" & ComboBox1.Колона (1) & "филми"
End Sub

Забележка: тези кодови редове затварят потребителската форма на Excel VBA и показват избрания елемент и жанр. Изразът „On Error Resume Next“ игнорира грешката, когато потребителят попълва собствения си филм (в този случай няма наличен жанр).

13. Щракнете двукратно върху бутона Отказ.

14. Добавете следния код:

Частна подкоманда CommandButton2_Click ()
Разтоварвай Ме
End Sub

Резултат, когато изберете Скорост и щракнете върху OK.

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

wave wave wave wave wave