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

Потребителските формуляри във VBA ви представят празно платно; можете да проектирате и организирате формулярите, за да отговарят на вашите нужди по всяко време.

В това ръководство ще се научите да създавате базиран на студенти формуляр за въвеждане на данни, който улавя съответната информация в свързани листове на Excel.

Създаване на потребителски формуляр с Excel VBA

Отворете нова работна книга на Excel и изпълнете няколко предварителни стъпки, преди да започнете да създавате своя формуляр за въвеждане на данни.

Запазете работната си книга с желаното име; не забравяйте да промените типа на файла на an Работна книга с активиран макрос на Excel.

Свързано:Уебсайтове и блогове, за да научите съвети и трикове на Excel

Добавете два листа към тази работна книга със следните имена:

instagram viewer
  1. лист1: У дома
  2. лист 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 макрос

Обединяването на данни от повече от един лист на Excel в една и съща работна книга е истинска караница... докато не използвате VBA макроси.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • производителност
  • Програмиране на Visual Basic
  • Microsoft Excel
За автора
Гаурав Сиял (публикувани 50 статии)

Gaurav Siyal има две години опит в писането, като пише за серия от фирми за дигитален маркетинг и документи за жизнения цикъл на софтуера.

Още от Gaurav Siyal

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате