L'ús de formularis a VBA us ofereix un llenç en blanc per dissenyar i organitzar formularis segons les vostres necessitats en qualsevol moment. Aprenem amb Download.vn com crear formularis d'entrada automàtica de dades a Excel VBA !
Creeu un formulari d'usuari amb Excel VBA
Obriu un llibre d'Excel nou i realitzeu uns quants passos preliminars abans de començar a crear el formulari d'entrada de dades.
Deseu el llibre de treball amb el nom desitjat, no us oblideu de canviar el tipus de fitxer a l'Excel Macro-Enabled Workbook.
Afegiu 2 fulls a aquest quadern amb els noms següents:
- Fitxa 1 : Casa
- Fitxa 2 : Base de dades de l'alumnat
Per descomptat, podeu canviar els seus noms com vulgueu.
Al full d'inici , afegiu un botó de control de macro del formulari d'usuari. Aneu a la pestanya Desenvolupador > feu clic a Botó a la llista desplegable Insereix . Col·loqueu aquest botó a qualsevol lloc del full de càlcul.
Després de col·locar el botó, canvieu el nom. Feu clic amb el botó dret sobre ell > feu clic a Nou per adjuntar una macro que mostri el formulari.
Introduïu el codi següent a la finestra de l'editor:
Sub Button1_Click()
UserForm.Show
End Sub
Amb el full d'inici i la base de dades d'estudiants a punt, és hora de dissenyar el formulari d'usuari. Aneu a la pestanya Desenvolupador > feu clic a Visual Basic per obrir l'Editor . Alternativament, podeu prémer ALT+F11 per obrir la finestra de l'editor.
Feu clic a la pestanya Insereix i seleccioneu Formulari d'usuari . Un formulari d'usuari està llest per ser utilitzat. S'obre una caixa d'eines adjunta amb aquest formulari, que conté totes les eines necessàries per dissenyar el disseny.
Des d'aquesta caixa d'eines, seleccioneu Marc . Arrossegueu-lo al formulari d'usuari i canvieu-lo de mida.
A (nom) , podeu canviar el nom d'aquest marc. Per mostrar el nom a la portada, podeu canviar-lo a la columna Subtítol .
A continuació, seleccioneu Etiqueta a la caixa d'eines i inseriu 2 adhesius en aquest quadre. Canvieu el nom del primer nom a Número de sol·licitud i el segon nom a ID d'estudiant .
Apliqueu el mateix procés de canvi de nom mitjançant Subtítol a Propietats . Assegureu-vos de seleccionar l'etiqueta corresponent abans de canviar-ne el nom.
A continuació, inseriu 2 quadres de text al quadre d'adhesius. S'utilitzaran per capturar les entrades dels usuaris. Canvieu els noms dels 2 quadres de text mitjançant la columna (Nom) a Propietats de la manera següent:
- Textbox1 : txtApplicationNo
- Textbox2 : txtStudentID
Disseny d'un marc d'informació per a l'estudiant
Inseriu un marc vertical i afegiu 10 etiquetes i 10 quadres de text. Canvieu el nom de l'etiqueta de la manera següent:
- Etiqueta 3 : Nom
- Etiqueta 4 : Edat
- Etiqueta 5 : Adreça
- Etiqueta 6 : Telèfon
- Etiqueta 7 : Ciutat
- Etiqueta 8 : País
- Etiqueta 9 : Data de naixement
- Etiqueta 10 : codi postal
- Etiqueta 11 : Nacionalitat
- Etiqueta 12 : gènere
Inseriu el quadre de text corresponent al costat d'aquestes etiquetes, inserint des de dos quadres de botons d'opció de la caixa d'eines del formulari d'usuari al costat de l'etiqueta de gènere. Canvia els seus noms a Home i Female (amb personalitzat) respectivament.
Dissenyar el marc detallat del curs
Afegiu un altre marc verticalment i inseriu 6 adhesius, 6 quadres de text corresponents a cada etiqueta. Canvieu el nom de l'adhesiu de la següent manera:
- Etiqueta 13 : Nom del curs
- Etiqueta 14 : identificador del curs
- Etiqueta 15 : Data d'inici de la matrícula
- Etiqueta 16 : Data de finalització de la matrícula
- Etiqueta 17 : Durada del curs
- Etiqueta 18 : Departament
Disseny de marc de detall de pagament
Inseriu un marc nou, afegiu una etiqueta nova i canvieu-li el nom "Voleu actualitzar els detalls de pagament?" Inseriu 2 botons d'opció ; canviar- los el nom per Sí i No.
De la mateixa manera, afegiu un marc nou que contingui 2 etiquetes addicionals i 2 quadres combinats. Canvieu el nom de l'etiqueta de la manera següent:
- Etiqueta 19 : Pagament rebut
- Label20 : Mode de pagament
Disseny del tauler de navegació
A l'últim marc, afegiu 3 botons de la caixa d'eines, que continguin codi per desplegar els formularis. Canvieu el nom dels botons de la següent manera:
- Button1 : Desa els detalls
- Button2 : Esborra el formulari
- Botó 3 : Sortir
Escriu codi de formulari automàtic: Botó per desar informació
Feu doble clic al botó Desa els detalls . Al mòdul següent, inseriu el codi següent:
Private Sub CommandButton2_Click()
‘declare the variables used throughout the codes
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long
'Add validations to check if character values are being entered in numeric fields.
If VBA.IsNumeric(txtApplicationNo.Value) = False Then
MsgBox "Only numeric values are accepted in the Application Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtStudentID.Value) = False Then
MsgBox "Only numeric values are accepted in the Student ID", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtAge.Value) = False Then
MsgBox "Only numeric values are accepted in Age", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtPhone.Value) = False Then
MsgBox "Only numeric values are accepted in Phone Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(Me.txtCourseID.Value) = False Then
MsgBox "Only numeric values are accepted in Course ID", vbCritical
Exit Sub
End If
'link the text box fields with the underlying sheets to create a rolling database
Set sht = ThisWorkbook.Sheets("Student Database")
'calculate last populated row in both sheets
lastrow = sht.Range("a" & Rows.Count).End(xlUp).Row + 1
'paste the values of each textbox into their respective sheet cells
With sht
.Range("a" & lastrow).Value = txtApplicationNo.Value
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName.Value
.Range("d" & lastrow).Value = txtAge.Value
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress.Value
.Range("h" & lastrow).Value = txtPhone.Value
.Range("i" & lastrow).Value = txtCity.Value
.Range("j" & lastrow).Value = txtCountry.Value
.Range("k" & lastrow).Value = txtZip.Value
.Range("l" & lastrow).Value = txtNationality.Value
.Range("m" & lastrow).Value = txtCourse.Value
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart.Value
.Range("p" & lastrow).Value = txtenrollmentend.Value
.Range("q" & lastrow).Value = txtcourseduration.Value
.Range("r" & lastrow).Value = txtDept.Value
End With
sht.Activate
'determine gender as per user's input
If optMale.Value = True Then sht.Range("g" & lastrow).Value = "Male"
If optFemale.Value = True Then sht.Range("g" & lastrow).Value = "Female"
'Display a message box, in case the user selects the Yes radio button
If optYes.Value = True Then
MsgBox "Please select the payment details below"
Else:
Exit Sub
End If
End Sub
Explicació del codi en forma automatitzada:
Les caixes de text inclouen text i valors numèrics, de manera que cal limitar l'entrada de l'usuari. El número de sol·licitud, l'identificador de l'estudiant, l'edat, el telèfon, l'identificador del curs i la durada del curs només inclouran números, la resta contindrà text.
Mitjançant l' ordre IF , el codi activa una finestra emergent d'error si l'usuari introdueix un caràcter o un valor de text en qualsevol camp numèric.
Com que hi ha validació d'errors, heu d'enllaçar els quadres de text a les cel·les del full de treball.
Les variables de lastrow calculen l'última fila completa i emmagatzemen el valor dins per a un ús flexible.
Finalment, aquests valors s'enganxen al quadre de text del full d'Excel enllaçat.
Codifiqueu el botó d'esborrar i sortir del formulari
Al botó d'esborrar , heu d'escriure el codi que esborri els valors actuals del formulari de l'usuari de la següent manera:
With Me
.txtApplicationNo.Value = ""
.txtStudentID.Value = ""
..txtName.Value = ""
.txtAge.Value = ""
.txtAddress.Value = ""
.txtPhone.Value = ""
.txtCity.Value = ""
.txtCountry.Value = ""
.txtDOB.Value = ""
.txtZip.Value = ""
.txtNationality.Value = ""
.txtCourse.Value = ""
.txtCourseID.Value = ""
.txtenrollmentstart.Value = ""
.txtenrollmentend.Value = ""
.txtcourseduration.Value = ""
.txtDept.Value = ""
.cmbPaymentMode.Value = ""
.cmbPayment.Value = ""
.optFemale.Value = False
.optMale.Value = False
.optYes.Value = False
.optNo.Value = False
End With
Al botó de sortida , introduïu el codi següent al formulari de l'usuari:
Private Sub CommandButton5_Click()
Unload Me
End Sub
Al pas final, heu d'introduir les últimes peces de codi per crear els valors desplegables per al quadre combinat (al marc de pagament).
Private Sub UserForm_Activate()
With cmbPayment
.Clear
.AddItem ""
.AddItem "Yes"
.AddItem "No"
End With
With cmbPaymentMode
.Clear
.AddItem ""
.AddItem "Cash"
.AddItem "Card"
.AddItem "Check"
End With
End Sub
A dalt es mostra com crear un formulari d'entrada automàtica de dades a Excel VBA . Espero que l'article us sigui útil.