/ / Многофункционална комбинирана кутия за Excel VBA

Excel VBA Мултиколона Комбинирана кутия

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

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

Многоъгълна комбинация в Excel VBA

За да създадете този Userform, изпълнете следните стъпки.

1. Отворете редактора на Visual Basic. Ако Explorer на проекта не е видим, щракнете върху Преглед, Проект Explorer.

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

Настройка на потребителския екран в Excel VBA

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

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

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

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

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

7. В Project Explorer кликнете с десния бутон на мишката върху UserForm1 и след това върху View Code.

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

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

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

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

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

10. В Project Explorer кликнете два пъти върху UserForm1.

11. Кликнете два пъти върху бутона OK.

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

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Забележка: тези кодови линии затварят потребителския формат Excel VBA и показват избрания елемент и жанр. В изречението "Върнете назад след грешка" пренебрегва грешката, когато потребителят попълни собствения си филм (в този случай няма жанр).

13. Кликнете два пъти върху бутона Отказ.

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

Private Sub CommandButton2_Click()

Unload Me

End Sub

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

Резултат от многоколонната комбинирана кутия

Резултат от многоколонната комбинирана кутия

Също така се чете: