Visual Basic е отличен език за автоматизиране на повтарящи се задачи в Excel. Представете си да издигнете автоматизацията си на ниво, като създадете високофункционални потребителски форми, които също изглеждат спретнати за крайните потребители.
Потребителските формуляри във VBA ви представят празно платно; можете да проектирате и организирате формулярите, за да отговарят на вашите нужди по всяко време.
В това ръководство ще се научите да създавате базиран на студенти формуляр за въвеждане на данни, който улавя съответната информация в свързани листове на Excel.
Създаване на потребителски формуляр с Excel VBA
Отворете нова работна книга на Excel и изпълнете няколко предварителни стъпки, преди да започнете да създавате своя формуляр за въвеждане на данни.
Запазете работната си книга с желаното име; не забравяйте да промените типа на файла на an Работна книга с активиран макрос на Excel.
Свързано:Уебсайтове и блогове, за да научите съвети и трикове на Excel
Добавете два листа към тази работна книга със следните имена:
- лист1: У дома
- лист 2: Студентска база данни
Чувствайте се свободни да промените тези имена според вашите изисквания.
В У дома лист, добавете бутон за управление на макроса на потребителския формуляр. Отидете до Разработчик раздел и щракнете върху Бутон опция от Вмъкване падащ списък. Поставете бутона навсякъде на листа.
След като поставите бутона, преименувайте го. Щракнете с десния бутон върху него и щракнете върху Нов за да зададете нов макрос за показване на формуляра.
Въведете следния код в прозореца на редактора:
Подбутон1_Щракване()
Потребителски формуляр. Покажи
Край под
Веднъж У дома и Студентска база данни листовете са готови, време е да проектирате потребителския формуляр. Навигирайте до Разработчик раздел и щракнете върху Visual Basic за да отворите редактора. Като алтернатива можете да натиснете ALT+F11 за да отворите прозореца на редактора.
Кликнете върху Вмъкване раздел и изберете Потребителски формуляр.
Празен потребителски формуляр е готов за използване; заедно с формуляра се отваря придружаваща кутия с инструменти, която има всички основни инструменти за проектиране на оформлението.
От кутията с инструменти изберете Кадър опция. Плъзнете това към потребителския формуляр и го преоразмерете.
В (име) опция, можете да промените името на рамката. За да покажете името на предния край, можете да промените името в Надпис колона.
След това изберете Етикет опция от кутията с инструменти и вмъкнете два етикета в тази рамка. Преименувайте първия като Номер на приложението а вторият като Студентска карта.
Прилага се същата логика на преименуване; променете имената чрез Надпис опция в рамките на Имоти прозорец. Уверете се, че сте избрали съответния етикет, преди да промените името му.
След това поставете две текстови полета до полетата с етикети. Те ще се използват за улавяне на въведените данни на потребителя. Променете имената на две текстови полета чрез (име) колона в Имоти прозорец. Имената са както следва:
- Текстово поле 1: txtApplicationNo
- Текстово поле 2: txtStudentID
Проектиране на рамката с подробности за учениците
Поставете вертикална рамка и добавете 10 етикета и 10 текстови полета. Преименувайте всеки от тях по следния начин:
- Етикет 3: име
- Етикет 4: възраст
- Етикет 5: Адрес
- Етикет 6: Телефон
- Етикет 7: град
- Етикет 8: Страна
- Етикет 9: Дата на раждане
- Етикет 10: Пощенски код
- Етикет 11: Националност
- Етикет 12: Пол
Вмъкнете съответните текстови полета до тези етикети; вмъкнете две (или повече) бутон с опции полета от кутията с инструменти на потребителския формуляр до пол етикет. Преименувайте ги Мъжки и Женски пол (заедно с Custom), респ.
Проектиране на рамката с подробности за курса
Добавете още една вертикална рамка и поставете шест етикета и шест текстови полета, съответстващи на всеки етикет. Преименувайте етикетите, както следва:
- Етикет 13: Име на курса
- Етикет 14: Идентификатор на курса
- Етикет 15: Начална дата на записване
- Етикет 16: Крайна дата на записването
- Етикет 17: Продължителност на курса
- Етикет 18: отдел
Свързано: 4 грешки, които трябва да избягвате, когато програмирате макроси на Excel с VBA
Проектиране на рамката с данни за плащане
Поставете нова рамка; добавете нов етикет и го преименувайте на „Искате ли да актуализирате данните за плащане?“ Поставете две бутони за опции; преименувайте ги да и Не.
По същия начин добавете нова рамка, съдържаща два допълнителни етикета и две комбинирани полета. Преименувайте етикетите, както следва:
- Етикет 19: Получено плащане
- Етикет 20: Начин на плащане
Проектиране на навигационния екран
В последния кадър добавете три бутона от кутията с инструменти, които ще съдържат код за изпълнение на формулярите.
Преименувайте бутоните по следния начин:
- Бутон 1: Запазване на подробности
- Бутон 2: Чиста форма
- Бутон 3: Излезте
Писане на кода за автоматизиран формуляр: Бутон за запазване на подробностите
Щракнете двукратно върху Запазване на подробности бутон. В следващия модул поставете следния код:
Частна подкомандаButton2_Click()
„декларирайте променливите, използвани в кодовете
Dim sht като работен лист, sht1 като работен лист, последно като дълъг„Добавете валидации, за да проверите дали стойностите на знаци се въвеждат в цифровите полета.
Ако VBA.IsNumeric (txtApplicationNo. стойност) = False, тогава
MsgBox "В номера на приложението се приемат само цифрови стойности", vbCritical
Изход Sub
Край, акоАко VBA.IsNumeric (txtStudentID.Value) = False Тогава
MsgBox "В студентския идентификатор се приемат само числови стойности", vbCritical
Изход Sub
Край, акоАко VBA.IsNumeric (txtAge. Стойност) = False Тогава
MsgBox "В възраст се приемат само числови стойности", vbCritical
Изход Sub
Край, акоАко VBA.IsNumeric (txtPhone. Стойност) = False Тогава
MsgBox "В телефонния номер се приемат само цифрови стойности", vbCritical
Изход Sub
Край, акоАко VBA.IsNumeric (Me.txtCourseID.Value) = False, тогава
MsgBox "В идентификатора на курса се приемат само цифрови стойности", vbCritical
Изход Sub
Край, ако'свържете полетата на текстовото поле с основните листове, за да създадете подвижна база данни
Задайте sht = Тази работна книга. Таблици ("Студентска база данни")'изчислете последния попълнен ред в двата листа
последен = щ. Диапазон ("a" и редове. Брой).Край (xlUp).Ред + 1
'поставете стойностите на всяко текстово поле в съответните клетки на лист
С щт
.Range("a" & lastrow).Стойност = txtApplicationNo. Стойност
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Стойност = txtName. Стойност
.Range("d" & lastrow).Стойност = txtAge. Стойност
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Стойност = txtAddress. Стойност
.Range("h" & lastrow).Стойност = txtPhone. Стойност
.Range("i" & lastrow).Стойност = txtCity. Стойност
.Range("j" & lastrow).Стойност = txtCountry. Стойност
.Range("k" & lastrow).Стойност = txtZip. Стойност
.Range("l" & lastrow).Стойност = txtNationality. Стойност
.Range("m" & lastrow).Стойност = txtCourse. Стойност
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Стойност = txtenrollmentstart. Стойност
.Range("p" & lastrow).Стойност = txtenrollmentend. Стойност
.Range("q" & lastrow).Стойност = txtcourseduration. Стойност
.Range("r" & lastrow).Стойност = txtDept. СтойностКрай с
sht Активирате„определете пола според въвеждането на потребителя
Ако optMale. Стойност = Вярно Тогава sht. Диапазон("g" & lastrow).Стойност = "Мъж"
Ако optЖенски. Стойност = Вярно Тогава sht. Диапазон("g" & lastrow).Стойност = "Женски"
„Показване на поле за съобщение, в случай че потребителят избере радио бутона ДаАко опцията Да. Стойност = Вярно Тогава
MsgBox "Моля, изберете данните за плащане по-долу"
друго:
Изход SubКрай, ако
Край под
Ако не сте сигурни какво означават части или някой от кода, не се притеснявайте. Ще го обясним подробно в следващия раздел.
Обяснение на кода за автоматизиран формуляр
Текстовите полета ще съдържат смесица от текстови и цифрови стойности, така че е от съществено значение да ограничите въвеждането на потребителя. В Номер на приложението, Студентска карта, възраст, Телефон, Идентификатор на курса, и Продължителност на курса трябва да съдържа само числа, докато останалите ще съдържат текст.
Използването на АКО изявление, кодът задейства изскачащи прозорци за грешка, ако потребителят въведе знак или текстова стойност в някое от числовите полета.
Тъй като проверките за грешки са налице, трябва да свържете текстовите полета с клетките на листа.
В последен променливите ще изчислят последния попълнен ред и ще съхранят стойностите в тях за динамична употреба.
Накрая стойностите се поставят от текстовите полета в свързания лист на Excel.
Изчистване на формуляра и кодовете на бутоните за излизане
В ясно бутон, трябва да напишете кода, за да изчистите съществуващите стойности от потребителския формуляр. Това може да стане по следния начин:
С мен
.txtApplicationNo Стойност = ""
.txtStudentID.Value = ""
..txtName. Стойност = ""
.txtAge. Стойност = ""
.txtAddress. Стойност = ""
.txtPhone. Стойност = ""
.txtCity. Стойност = ""
.txtCountry. Стойност = ""
.txtDOB.Value = ""
.txtZip. Стойност = ""
.txt Националност. Стойност = ""
.txtCourse. Стойност = ""
.txtCourseID.Value = ""
.txtenrollmentstart. Стойност = ""
.txtenrollmentend. Стойност = ""
.txtcourseduration. Стойност = ""
.txtDept Стойност = ""
.cmbPaymentMode. Стойност = ""
.cmbПлащане. Стойност = ""
.optЖенски. Стойност = False
.optMale. Стойност = False
.optДа. Стойност = False
.optNo Стойност = False
Край с
В изход бутон, въведете следния код, за да затворите потребителския формуляр.
Частен подкоманден бутон5_Click()
Разтовари ме
Край под
Като последна стъпка трябва да въведете няколко последни парчета код, за да създадете падащите стойности за комбинираните полета (в рамките на платежните рамки).
Частна подпотребителска форма_Активиране()
С cmbPayment
.Ясно
.Добавете артикул ""
.AddItem "Да"
.AddItem "Не"
Край с
С cmbPaymentMode
.Ясно
.Добавете артикул ""
.AddItem "Кеш"
.AddItem "Карта"
.AddItem "Проверка"
Край с
Край под
VBA автоматизацията прави работата по-лесна
VBA е многостранен език, който служи за много цели. Потребителските формуляри са само един аспект в рамките на VBA – има много други приложения като консолидиране на работни книги и работни листове, обединяване на множество листове на Excel и други удобни приложения за автоматизация.
Без значение от целта за автоматизация, VBA е готов на задачата. Ако продължавате да се учите и да практикувате, няма аспект от работния си процес, който да не можете да подобрите.
Обединяването на данни от повече от един лист на Excel в една и съща работна книга е истинска караница... докато не използвате VBA макроси.
Прочетете Следващото
- Програмиране
- производителност
- Програмиране на Visual Basic
- Microsoft Excel
Gaurav Siyal има две години опит в писането, като пише за серия от фирми за дигитален маркетинг и документи за жизнения цикъл на софтуера.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате