Visual Basic este un limbaj excelent pentru automatizarea sarcinilor repetitive în Excel. Imaginați-vă că vă luați automatizarea la un nivel superior creând formulare de utilizator extrem de funcționale, care arată, de asemenea, ordonate pentru utilizatorii finali.

Formularele de utilizator din VBA vă prezintă o pânză goală; puteți proiecta și organiza formularele pentru a se potrivi nevoilor dvs. în orice moment.

În acest ghid, veți învăța să creați un formular de introducere a datelor bazat pe elev, care captează informații relevante în foile Excel conectate.

Crearea unui formular de utilizator cu Excel VBA

Deschideți un nou registru de lucru Excel și efectuați câțiva pași preliminari înainte de a începe să vă creați formularul de introducere a datelor.

Salvați registrul de lucru cu numele dorit; nu uitați să schimbați tipul fișierului în an Registrul de lucru cu macrocomandă Excel.

Legate de:Site-uri web și bloguri pentru a afla sfaturi și trucuri Excel

Adăugați două foi la acest registru de lucru, cu următoarele nume:

instagram viewer
  1. Foaia 1: Acasă
  2. Foaia 2: Baza de date pentru studenți

Simțiți-vă liber să schimbați aceste nume în funcție de cerințele dvs.

În Acasă foaie, adăugați un buton pentru a controla macrocomanda formularului utilizator. Du-te la Dezvoltator fila și faceți clic pe Buton opțiunea din Introduce lista verticală. Așezați butonul oriunde pe foaie.

După ce ați plasat butonul, redenumiți-l. Faceți clic dreapta pe el și faceți clic pe Nou pentru a atribui o nouă macrocomandă pentru a afișa formularul.

Introduceți următorul cod în fereastra editorului:

Sub Button1_Click()
Formular utilizator. Spectacol
End Sub

Odata ce Acasă și Baza de date pentru studenți foile sunt gata, este timpul să proiectați formularul de utilizator. Navigați la Dezvoltator fila și faceți clic pe Visual Basic pentru a deschide Editorul. Alternativ, puteți apăsa ALT+F11 pentru a deschide fereastra editorului.

Faceți clic pe Introduce filă și selectați Formular utilizator.

Un formular de utilizator gol este gata de utilizare; o cutie de instrumente însoțitoare se deschide împreună cu formularul, care are toate instrumentele esențiale pentru a proiecta aspectul.

Din caseta de instrumente, selectați Cadru opțiune. Trageți-l în formularul de utilizator și redimensionați-l.

În (Nume) opțiunea, puteți schimba numele cadrului. Pentru a afișa numele pe front-end, puteți schimba numele în Legendă coloană.

Apoi, selectați Eticheta opțiunea din caseta de instrumente și introduceți două etichete în acest cadru. Redenumiți primul ca Numarul aplicatiei iar al doilea ca Carnet de student.

Se aplică aceeași logică de redenumire; schimba numele prin intermediul Legendă opțiunea în cadrul Proprietăți fereastră. Asigurați-vă că selectați eticheta respectivă înainte de a-i schimba numele.

Apoi, inserați două casete de text lângă casetele de etichetă. Acestea vor fi folosite pentru a captura intrările utilizatorului. Schimbați numele a două casete de text prin intermediul (Nume) coloana din cadrul Proprietăți fereastră. Numele sunt după cum urmează:

  • Caseta text 1: txtApplicationNr
  • Caseta text 2: txtStudentID

Proiectarea cadrului pentru detaliile elevului

Introduceți un cadru vertical și adăugați 10 etichete și 10 casete de text. Redenumiți fiecare dintre ele în felul următor:

  • Eticheta 3: Nume
  • Eticheta 4: Vârstă
  • Eticheta 5: Abordare
  • Eticheta 6: Telefon
  • Eticheta 7: Oraș
  • Eticheta 8: Țară
  • Eticheta 9: Data nașterii
  • Eticheta 10: Cod poștal
  • Eticheta 11: Naţionalitate
  • Eticheta 12: Gen

Introduceți casetele de text corespunzătoare lângă aceste etichete; introduceți două (sau mai multe) butonul de opțiune casete din caseta de instrumente pentru formularul de utilizator de lângă gen eticheta. Redenumiți-le Masculin și Femeie (împreună cu Custom), respectiv.

Proiectarea cadrului pentru detaliile cursului

Adăugați un alt cadru vertical și introduceți șase etichete și șase casete de text corespunzătoare fiecărei etichete. Redenumiți etichetele după cum urmează:

  • Eticheta 13: Numele materiei
  • Eticheta 14: ID curs
  • Eticheta 15: Data de începere a înscrierii
  • Eticheta 16: Data de încheiere a înscrierii
  • Eticheta 17: Durata cursului
  • Eticheta 18: Departament

Legate de: 4 greșeli de evitat la programarea macrocomenzilor Excel cu VBA

Proiectarea cadrului pentru detaliile de plată

Introduceți un nou cadru; adăugați o nouă etichetă și redenumiți-o „Doriți să actualizați detaliile de plată?” Introduceți două butoane de opțiuni; redenumiți-le da și Nu.

În mod similar, adăugați un nou cadru care conține două etichete suplimentare și două casete combinate. Redenumiți etichetele după cum urmează:

  • Eticheta 19: Plata primita
  • Eticheta 20: Modalitate de plată

Proiectarea panoului de navigare

În cadrul final, adăugați trei butoane din caseta de instrumente, care vor conține cod pentru executarea formularelor.

Redenumiți butoanele în felul următor:

  • Butonul 1: Salvați detalii
  • Butonul 2: Formă clară
  • Butonul 3: Ieșire

Scrierea codului de formular automat: Butonul Salvare detalii

Faceți dublu clic pe Salvați detalii buton. În modulul următor, introduceți următorul cod:

Private Sub CommandButton2_Click()

„declară variabilele utilizate pe parcursul codurilor
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long

„Adăugați validări pentru a verifica dacă valorile caracterelor sunt introduse în câmpurile numerice.
Dacă VBA.IsNumeric (txtApplicationNo. Value) = Fals, atunci
MsgBox „Sunt acceptate doar valorile numerice în numărul aplicației”, vbCritical
Ieșiți din sub
Încheiați dacă

Dacă VBA.IsNumeric (txtStudentID.Value) = Fals, atunci
MsgBox „Numai valorile numerice sunt acceptate în ID-ul studentului”, vbCritical
Ieșiți din sub
Încheiați dacă

Dacă VBA.IsNumeric (txtAge. Valoare) = Fals Atunci
MsgBox „Numai valorile numerice sunt acceptate în Age”, vbCritical
Ieșiți din sub
Încheiați dacă

Dacă VBA.IsNumeric (txtPhone. Valoare) = Fals Atunci
MsgBox „Numai valorile numerice sunt acceptate în numărul de telefon”, vbCritical
Ieșiți din sub
Încheiați dacă

Dacă VBA.IsNumeric (Me.txtCourseID.Value) = Fals, atunci
MsgBox „Sunt acceptate doar valorile numerice în ID-ul cursului”, vbCritical
Ieșiți din sub
Încheiați dacă

„legați câmpurile casetei de text cu foile de bază pentru a crea o bază de date rulanta
Set sht = ThisWorkbook. Foi de calcul ("Baza de date pentru elevi")

'calculați ultimul rând populat din ambele foi

lastrow = sht. Interval(„a” și Rânduri. Count).End (xlUp).Rând + 1

„inserați valorile fiecărei casete de text în celulele respective ale foii

Cu sht
.Range("a" & lastrow).Value = txtApplicationNo. Valoare
.Range(„b” & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName. Valoare
.Range("d" & lastrow).Value = txtAge. Valoare
.Range(„e” & lastrow).Value = txtDOB.Value
.Range(„g” & lastrow).Valoare = txtAddress. Valoare
.Range(„h” & lastrow).Valoare = txtPhone. Valoare
.Range("i" & lastrow).Value = txtCity. Valoare
.Range("j" & lastrow).Valoare = txtCountry. Valoare
.Range("k" & lastrow).Valoare = txtZip. Valoare
.Range("l" & lastrow).Valoare = txtNationality. Valoare
.Range("m" & lastrow).Valoare = txtCurs. Valoare
.Range(„n” și lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Valoare = txtenrollmentstart. Valoare
.Range("p" & lastrow).Valoare = txtenrollmentend. Valoare
.Range("q" & lastrow).Valoare = txtcourseduration. Valoare
.Range("r" & lastrow).Valoare = txtDept. Valoare

Se termina cu
sht. Activati

„Determinați sexul în funcție de intrarea utilizatorului
Dacă optMale. Valoare = Adevărat Apoi sht. Range(„g” și lastrow).Value = „Bărbat”
Dacă optFemale. Valoare = Adevărat Apoi sht. Interval(„g” și lastrow).Valoare = „Femeie”
„Afișează o casetă de mesaj, în cazul în care utilizatorul selectează butonul radio Da

Dacă optațiDa. Valoare = Adevărat Atunci
MsgBox „Vă rugăm să selectați detaliile de plată de mai jos”
Altfel:
Ieșiți din sub

Încheiați dacă

End Sub

Dacă nu sunteți sigur ce înseamnă părți sau oricare dintre coduri, nu vă faceți griji. O vom explica pe larg în secțiunea următoare.

Codul formularului automat explicat

Casetele de text vor conține o combinație de text și valori numerice, așa că este esențial să restricționați introducerea utilizatorului. The Numarul aplicatiei, Carnet de student, Vârstă, Telefon, ID curs, și Durata cursului ar trebui să conțină doar numere, în timp ce restul va conține text.

Folosind un DACĂ declarație, codul declanșează ferestre pop-up de eroare dacă utilizatorul introduce un caracter sau o valoare de text în oricare dintre câmpurile numerice.

Deoarece validările erorilor sunt în vigoare, trebuie să legați casetele de text cu celulele foii.

The ultimul rând variabilele vor calcula ultimul rând populat și vor stoca valorile în ele pentru utilizare dinamică.

În cele din urmă, valorile sunt lipite din casetele de text în foaia Excel legată.

Ștergeți codurile butoanelor de formular și de ieșire

În clar butonul, trebuie să scrieți codul pentru a șterge valorile existente din formularul de utilizator. Acest lucru se poate face în felul următor:

Cu mine
.txtApplicationNo. Valoare = ""
.txtStudentID.Value = ""
..txtName. Valoare = ""
.txtAge. Valoare = ""
.txtAdresă. Valoare = ""
.txtPhone. Valoare = ""
.txtCity. Valoare = ""
.txtȚară. Valoare = ""
.txtDOB.Value = ""
.txtZip. Valoare = ""
.txtNaționalitate. Valoare = ""
.txtCurs. Valoare = ""
.txtCourseID.Value = ""
.txtenrollmentstart. Valoare = ""
.txtenrollmentend. Valoare = ""
.txtcourseduration. Valoare = ""
.txtDept. Valoare = ""
.cmbPaymentMode. Valoare = ""
.cmbPlată. Valoare = ""
.optFeme. Valoare = Fals
.optMale. Valoare = Fals
.optDa. Valoare = Fals
.optNr. Valoare = Fals

Se termina cu

În Ieșire butonul, introduceți următorul cod pentru a închide formularul de utilizator.

Private Sub CommandButton5_Click()
Descarcă-mă
End Sub

Ca ultim pas, trebuie să introduceți câteva bucăți finale de cod pentru a crea valorile drop-down pentru casetele combinate (în cadrul cadrelor de plată).

Privat Sub UserForm_Activate()

Cu cmbPayment
.Clar
.Adaugare element ""
.AddItem „Da”
.AddItem „Nu”
Se termina cu
Cu cmbPaymentMode

.Clar
.Adaugare element ""
.AddItem „Numerar”
.AddItem „Card”
.AddItem „Verificare”
Se termina cu
End Sub

Automatizarea VBA ușurează munca

VBA este un limbaj cu mai multe fațete care servește mai multor scopuri. Formularele de utilizator sunt doar un aspect în VBA - există multe alte utilizări, cum ar fi consolidarea registrelor de lucru și a foilor de lucru, îmbinarea mai multor foi Excel și alte utilizări utile de automatizare.

Indiferent de obiectivul automatizării, VBA este la înălțime. Dacă continui să înveți și să exersezi, nu există niciun aspect al fluxului tău de lucru pe care să nu-l poți îmbunătăți.

Cum să îmbinați mai multe foi Excel folosind o macrocomandă VBA

Îmbinarea datelor din mai mult de o foaie Excel în același registru de lucru este o adevărată bătaie de cap... până când utilizați macrocomenzi VBA.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Programare
  • Productivitate
  • Programare Visual Basic
  • Microsoft Excel
Despre autor
Gaurav Siyal (50 de articole publicate)

Gaurav Siyal are doi ani de experiență în scris, scriind pentru o serie de firme de marketing digital și documente despre ciclul de viață al software-ului.

Mai multe de la Gaurav Siyal

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona