Потребителска форма на Excel VBA с множество страници - лесни макроси на Excel

Съдържание

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

Многостраничният контрол съдържа две страници. На страница 1 потребителят може да попълни своята лична информация. На страница 2 потребителят може да посочи коя картина му харесва най -много.

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

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

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

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

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

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 ()
Със ListBox1
.AddItem "Планини"
.AddItem "Залез"
.AddItem "Плаж"
.AddItem "Зима"
Край с
End Sub

Обяснение: списъчното поле на страница 2 ще бъде попълнено.

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

10. Изтеглете изображенията (дясната страна на тази страница) и ги добавете към „C: \ test \“

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

12. Щракнете двукратно върху полето със списък.

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

Частен под списък List1_Click ()
Ако ListBox1.ListIndex = 0 Тогава
Image1.Picture = LoadPicture ("C: \ test \ Mountains.jpg")
Край Ако
Ако ListBox1.ListIndex = 1 Тогава
Image1.Picture = LoadPicture ("C: \ test \ Sunset.jpg")
Край Ако
Ако ListBox1.ListIndex = 2 Тогава
Image1.Picture = LoadPicture ("C: \ test \ Beach.jpg")
Край Ако
Ако ListBox1.ListIndex = 3 Тогава
Image1.Picture = LoadPicture ("C: \ test \ Winter.jpg")
Край Ако
End Sub

Обяснение: тези кодови редове зареждат картина в зависимост от избрания елемент в списъчното поле.

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

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

Частна подкоманда CommandButton1_Click ()
Dim emptyRow As Long
„Направете Sheet1 активен
Лист 1. Активирайте
'Определете emptyRow
emptyRow = WorksheetFunction.CountA (Range ("A: A")) + 1
„Прехвърляне на информация
Клетки (emptyRow, 1) .Value = TextBox1.Value
Клетки (emptyRow, 2) .Value = TextBox2.Value
Ако OptionButton1.Value = True Тогава
Клетки (emptyRow, 3) .Value = "Male"
Иначе
Клетки (emptyRow, 3) .Value = "Женски"
Край Ако
Клетки (emptyRow, 4) .Value = ListBox1.Value
„Затворете потребителската форма
Разтоварвай Ме
End Sub

Обяснение: първо активираме Sheet1. След това определяме emptyRow. Променливата emptyRow е първият празен ред и се увеличава всеки път, когато се добави запис. След това прехвърляме информацията от Userform в конкретните колони на emptyRow. Накрая затваряме Userform.

16. Излезте от редактора на Visual Basic, въведете етикетите, показани по -долу, в ред 1 и тествайте Userform.

Резултат:

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

wave wave wave wave wave