Висуал Басиц је одличан језик за аутоматизацију задатака који се понављају у Екцел-у. Замислите да своју аутоматизацију подигнете на виши ниво креирањем веома функционалних корисничких образаца који такође изгледају уредно крајњим корисницима.
Кориснички обрасци у ВБА вам представљају празно платно; можете дизајнирати и организовати обрасце тако да одговарају вашим потребама у било ком тренутку.
У овом водичу ћете научити да креирате образац за унос података заснован на ученицима који обухвата релевантне информације у повезаним Екцел листовима.
Креирање корисничког обрасца помоћу Екцел ВБА
Отворите нову Екцел радну свеску и извршите неколико прелиминарних корака пре него што почнете да креирате образац за унос података.
Сачувајте своју радну свеску са жељеним именом; не заборавите да промените тип датотеке у ан Екцел радна свеска са омогућеним макроима.
Повезан:Веб локације и блогови за учење савета и трикова за Екцел
Додајте два листа овој радној свесци са следећим именима:
- Схеет1: Кућа
- Схеет2:Студентска база података
Слободно промените ова имена према вашим захтевима.
У Кућа лист, додајте дугме за контролу макроа корисничког обрасца. Иди на Девелопер картицу и кликните на Дугме опција из Уметните падајуће листе. Поставите дугме било где на листу.
Када поставите дугме, преименујте га. Кликните десним тастером миша на њега и кликните на Нова да доделите нови макро за приказ обрасца.
Унесите следећи код у прозор уређивача:
Под дугме1_Клик()
УсерФорм. Прикажи
Енд Суб
Када се Кућа и Студент Датабасе листови су спремни, време је да дизајнирате кориснички образац. Идите до Девелопер картицу и кликните на Вижуал бејзик да отворите Едитор. Алтернативно, можете притиснути АЛТ+Ф11 да бисте отворили прозор уређивача.
Кликните на Уметните картицу и изаберите УсерФорм.
Празан кориснички образац је спреман за употребу; отвара се пратећа кутија са алаткама заједно са формом, која има све неопходне алате за дизајнирање изгледа.
Из оквира са алаткама изаберите Рам опција. Превуците ово у кориснички образац и промените му величину.
У (име) опцију, можете променити назив оквира. Да бисте приказали име на предњој страни, можете променити име у Наслов колона.
Затим изаберите Ознака опцију из кутије са алаткама и убаците две етикете унутар овог оквира. Преименујте прву као Број пријаве а други као Студент ИД.
Примењује се иста логика преименовања; промените имена преко Наслов опција у оквиру Својства прозор. Обавезно изаберите одговарајућу ознаку пре него што промените њено име.
Затим уметните два оквира за текст поред поља са ознакама. Они ће се користити за снимање корисничких уноса. Промените имена два оквира за текст преко (име) цолумнвитхин тхе Својства прозор. Имена су следећа:
- Тектбок1: тктАпплицатионНо
- Тектбок2: тктСтудентИД
Дизајнирање оквира са детаљима ученика
Уметните вертикални оквир и додајте 10 ознака и 10 оквира за текст. Преименујте сваки од њих на следећи начин:
- Ознака 3: Име
- Ознака 4: Старост
- Ознака 5: Адреса
- Ознака 6: Телефон
- Ознака 7: Град
- Ознака 8: Држава
- Ознака 9: Датум рођења
- Ознака 10: Поштански број
- Ознака 11: националност
- Ознака 12: Пол
Уметните одговарајуће оквире за текст поред ових ознака; убаци два (или више) дугме опција поља из оквира са алаткама корисничког обрасца поред роду ознака. Преименујте их Мушки и Женско (заједно са Цустом), респективно.
Дизајнирање оквира са детаљима курса
Додајте још један вертикални оквир и уметните шест ознака и шест оквира за текст који одговарају свакој налепници. Преименујте ознаке на следећи начин:
- Ознака 13: Назив курса
- Ознака 14: ИД курса
- Ознака 15: Датум почетка уписа
- Ознака 16: Датум завршетка уписа
- Ознака 17: Трајање курса
- Ознака 18: Одељење
Повезан: 4 грешке које треба избегавати приликом програмирања Екцел макроа помоћу ВБА
Дизајнирање оквира са детаљима плаћања
Уметните нови оквир; додајте нову ознаку и преименујте је у „Да ли желите да ажурирате детаље плаћања?“ Убаци два оптионбуттонс; преименуј их да и Не.
Слично томе, додајте нови оквир који садржи две додатне ознаке и два комбинована оквира. Преименујте ознаке на следећи начин:
- Ознака 19: Примила уплату
- Ознака 20: Начин плаћања
Дизајнирање окна за навигацију
У завршном оквиру додајте три дугмета из кутије са алаткама, која ће садржати код за извршавање формулара.
Преименујте дугмад на следећи начин:
- Дугме 1: Сачувај детаље
- Дугме 2: Цлеар Форм
- Дугме 3: Изађи
Писање кода аутоматизованог обрасца: дугме Сачувај детаље
Двапут кликните на Сачувај детаље дугме. У модул који следи убаците следећи код:
Приватна подкомандна дугме2_Клик()
'декларисати променљиве које се користе у кодовима
Дим схт Ас Ворксхеет, схт1 Ас Ворксхеет, ластров Ас Лонг„Додајте валидације да бисте проверили да ли се вредности знакова уносе у нумеричка поља.
Ако је ВБА.ИсНумериц (тктАпплицатионНо. Валуе) = Фалсе, онда
МсгБок "Само нумеричке вредности се прихватају у броју апликације", вбЦритицал
Екит Суб
Крај АкоАко је ВБА.ИсНумериц (тктСтудентИД.Валуе) = Фалсе Онда
МсгБок "Само нумеричке вредности се прихватају у ИД-у ученика", вбЦритицал
Екит Суб
Крај АкоАко је ВБА.ИсНумериц (тктАге. Вредност) = Фалсе Онда
МсгБок "Само нумеричке вредности се прихватају у узрасту", вбЦритицал
Екит Суб
Крај АкоАко је ВБА.ИсНумериц (тктПхоне. Вредност) = Фалсе Онда
МсгБок "У телефонском броју се прихватају само нумеричке вредности", вбЦритицал
Екит Суб
Крај АкоАко је ВБА.ИсНумериц (Ме.тктЦоурсеИД.Валуе) = Фалсе, онда
МсгБок "Само нумеричке вредности се прихватају у ИД-у курса", вбЦритицал
Екит Суб
Крај Ако'повежите поља за текст са основним листовима да бисте креирали покретну базу података
Сет схт = ТхисВоркбоок. Табеле ("Ученичка база података")'израчунај последњи попуњени ред у оба листа
ластров = схт. Опсег("а" & редови. Цоунт).Крај (клУп).Ров + 1
'налепите вредности сваког оквира за текст у одговарајуће ћелије листа
Са схт
.Ранге("а" & ластров).Валуе = тктАпплицатионНо. Валуе
.Ранге("б" & ластров).Валуе = тктСтудентИД.Валуе
.Ранге("ц" & ластров).Валуе = тктНаме. Валуе
.Ранге("д" & ластров).Валуе = тктАге. Валуе
.Ранге("е" & ластров).Валуе = тктДОБ.Валуе
.Ранге("г" & ластров).Валуе = тктАддресс. Валуе
.Ранге("х" & ластров).Валуе = тктПхоне. Валуе
.Ранге("и" & ластров).Валуе = тктЦити. Валуе
.Ранге("ј" & ластров).Валуе = тктЦоунтри. Валуе
.Ранге("к" & ластров).Валуе = тктЗип. Валуе
.Ранге("л" & ластров).Валуе = тктНатионалити. Валуе
.Ранге("м" & ластров).Валуе = тктЦоурсе. Валуе
.Ранге("н" & ластров).Валуе = тктЦоурсеИД.Валуе
.Ранге("о" & ластров).Валуе = тктенроллментстарт. Валуе
.Ранге("п" & ластров).Валуе = тктенроллментенд. Валуе
.Ранге("к" & ластров).Валуе = тктцоурседуратион. Валуе
.Ранге("р" & ластров).Валуе = тктДепт. ВалуеЗавршити
схт. Активирати'одредите пол према уносу корисника
Ако оптМале. Вредност = Тачно Онда схт. Опсег("г" & ластров).Валуе = "Мушки"
Ако оптФемале. Вредност = Тачно Онда схт. Опсег("г" & ластров).Валуе = "Женски"
„Прикажи оквир са поруком, у случају да корисник изабере дугме за избор ДаАко оптИес. Вредност = Тачно Тада
МсгБок "Молимо изаберите детаље плаћања испод"
остало:
Екит СубКрај Ако
Енд Суб
Ако нисте сигурни који делови или било који од кодова значе, не брините. У следећем одељку ћемо то детаљно објаснити.
Објашњење кода аутоматизованог обрасца
Текстуални оквири ће садржати мешавину текстуалних и нумеричких вредности, тако да је неопходно ограничити унос корисника. Тхе Број пријаве, Студент ИД, Старост, Телефон, ИД курса, и Трајање курса треба да садржи само бројеве, док ће остатак садржати текст.
Коришћењем ан АКО израз, код покреће искачуће прозоре са грешком ако корисник унесе карактер или текстуалну вредност у било које од нумеричких поља.
Пошто су провере грешке на месту, потребно је да повежете текстуалне оквире са ћелијама листа.
Тхе ластров променљиве ће израчунати последњи попуњени ред и сачувати вредности у њима за динамичку употребу.
На крају, вредности се налепе из текстуалних оквира у повезани Екцел лист.
Брисање кодова обрасца и дугмета за излаз
У јасно дугме, потребно је да напишете код да бисте обрисали постојеће вредности из корисничког обрасца. Ово се може урадити на следећи начин:
Са мном
.тктАпплицатионНо. Вредност = ""
.тктСтудентИД.Валуе = ""
..тктНаме. Вредност = ""
.тктАге. Вредност = ""
.тктАддресс. Вредност = ""
.тктПхоне. Вредност = ""
.тктЦити. Вредност = ""
.тктЦоунтри. Вредност = ""
.тктДОБ.Валуе = ""
.тктЗип. Вредност = ""
.тктНатионалити. Вредност = ""
.тктЦоурсе. Вредност = ""
.тктЦоурсеИД.Валуе = ""
.тктенроллментстарт. Вредност = ""
.тктенроллментенд. Вредност = ""
.тктцоурседуратион. Вредност = ""
.тктДепт. Вредност = ""
.цмбПаиментМоде. Вредност = ""
.цмбПаимент. Вредност = ""
.оптФемале. Вредност = Фалсе
.оптМале. Вредност = Фалсе
.оптИес. Вредност = Фалсе
.оптНо. Вредност = Фалсе
Завршити
У излаз дугме, унесите следећи код да бисте затворили кориснички образац.
Приватна подкомандна дугме5_Клик()
Унлоад Ме
Енд Суб
Као последњи корак, потребно је да унесете неколико завршних делова кода да бисте креирали падајуће вредности за комбиноване оквире (у оквиру оквира плаћања).
Приватни Суб УсерФорм_Ацтивате()
Са цмбПаиментом
.Јасно
.Додајте ставку ""
.АддИтем "Да"
.АддИтем "Не"
Завршити
Са цмбПаиментМоде
.Јасно
.Додајте ставку ""
.АддИтем "Готовина"
.АддИтем "Цард"
.АддИтем "Провери"
Завршити
Енд Суб
ВБА аутоматизација чини рад лакшим
ВБА је вишеструки језик који служи многим сврхама. Кориснички обрасци су само један аспект унутар ВБА – постоји много других употреба као што су обједињавање радних књига и радних листова, спајање више Екцел листова и друге згодне употребе аутоматизације.
Без обзира на циљ аутоматизације, ВБА је на висини задатка. Ако наставите да учите и вежбате, нема аспекта тока посла који не можете да побољшате.
Спајање података са више од једног Екцел листа у истој радној свесци је права гњаважа... док не користите ВБА макрое.
Реад Нект
- Програмирање
- Продуктивност
- Висуал Басиц програмирање
- Мицрософт Екцел

Гаурав Сииал има две године искуства писања, писања за низ фирми за дигитални маркетинг и докумената о животном циклусу софтвера.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!
Кликните овде да бисте се претплатили