Izmantojot veidlapas VBA, jūs jebkurā laikā varat izveidot un sakārtot veidlapas atbilstoši savām vajadzībām. Mācīsimies ar Download.vn izveidot automātiskās datu ievades veidlapas programmā Excel VBA !
Izveidojiet lietotāja veidlapu, izmantojot Excel VBA
Pirms datu ievades veidlapas izveides atveriet jaunu Excel darbgrāmatu un veiciet dažas sākotnējās darbības.
Saglabājiet darbgrāmatu ar vēlamo nosaukumu, neaizmirstiet nomainīt faila tipu uz Excel Macro-Enabled Workbook.
Pievienojiet šai darbgrāmatai 2 lapas ar šādiem nosaukumiem:
- 1. lapa : Sākums
- 2. lapa : Studentu datu bāze
Protams, jūs varat mainīt viņu vārdus, kā vēlaties.
Sākumlapā pievienojiet lietotāja veidlapas makro vadības pogu . Atveriet cilni Izstrādātājs > nolaižamajā sarakstā Ievietot noklikšķiniet uz Poga . Novietojiet šo pogu jebkurā izklājlapas vietā.
Pēc pogas ievietošanas pārdēvējiet to. Ar peles labo pogu noklikšķiniet uz tā > noklikšķiniet uz Jauns , lai pievienotu makro, kas parāda veidlapu.
Redaktora logā ievadiet šādu kodu:
Sub Button1_Click()
UserForm.Show
End Sub
Kad sākumlapa un skolēnu datu bāze ir gatava, ir pienācis laiks izstrādāt lietotāja veidlapu. Pārejiet uz cilni Izstrādātājs > noklikšķiniet uz Visual Basic , lai atvērtu redaktoru . Varat arī nospiest ALT+F11 , lai atvērtu redaktora logu.
Noklikšķiniet uz cilnes Ievietot un atlasiet UserForm . Lietotāja veidlapa ir gatava lietošanai. Ar šo veidlapu tiek atvērts pievienotais rīku komplekts, kurā ir visi izkārtojuma izstrādei nepieciešamie rīki.
Šajā rīklodziņā atlasiet Rāmis . Velciet to uz lietotāja veidlapu un mainiet tā izmēru.
Sadaļā (name) varat mainīt šī rāmja nosaukumu. Lai nosaukumu parādītu priekšgalā, varat mainīt nosaukumu slejā Paraksts .
Pēc tam rīklodziņā atlasiet Etiķete un ievietojiet šajā lodziņā 2 uzlīmes. Pārdēvējiet pirmo vārdu uz Pieteikuma numurs un otro nosaukumu uz Studenta ID .
Lietojiet to pašu pārdēvēšanas procesu, izmantojot Parakstu sadaļā Rekvizīti . Pirms pārdēvēšanas noteikti atlasiet atbilstošo etiķeti.
Pēc tam uzlīmes lodziņā ievietojiet 2 tekstlodziņus. Tie tiks izmantoti, lai uztvertu lietotāja ievades datus. Mainiet 2 tekstlodziņu nosaukumus, izmantojot sleju (Nosaukums) sadaļā Properties šādi:
- Textbox1 : txtApplicationNr
- Textbox2 : txtStudentID
Studentu informācijas ietvara izstrāde
Ievietojiet vertikālu rāmi un pievienojiet 10 etiķetes un 10 tekstlodziņus. Pārdēvējiet etiķeti šādi:
- Etiķete 3 : Vārds
- Label4 : Vecums
- 5. etiķete : adrese
- Label6 : Tālrunis
- Label7 : Pilsēta
- Label8 : Valsts
- Label9 : dzimšanas datums
- Label10 : pasta indekss
- Label11 : pilsonība
- 12. iezīme : dzimums
Ievietojiet atbilstošo tekstlodziņu blakus šīm iezīmēm, ievietojot no diviem opciju pogu lodziņiem no lietotāja formas rīklodziņa blakus dzimuma apzīmējumam. Mainiet viņu vārdus attiecīgi uz Vīrietis un sieviete (ar pielāgotu).
Izstrādājiet detalizētu kursu ietvaru
Pievienojiet vēl vienu rāmi vertikāli un ievietojiet 6 uzlīmes, 6 tekstlodziņus, kas atbilst katrai etiķetei. Pārdēvējiet uzlīmi šādi:
- Label13 : Kursa nosaukums
- Label14 : Kursa ID
- Label 15 : Reģistrācijas sākuma datums
- Label16 : Reģistrācijas beigu datums
- Label17 : Kursa ilgums
- Label18 : nodaļa
Noformējiet maksājuma detaļu rāmi
Ievietojiet jaunu rāmi, pievienojiet jaunu etiķeti un pārdēvējiet to par "Vai vēlaties atjaunināt maksājuma informāciju?" Ievietojiet 2 opciju pogas ; pārdēvējiet tos par Jā un Nē .
Līdzīgi pievienojiet jaunu rāmi, kurā ir 2 papildu etiķetes un 2 kombinētie lodziņi. Pārdēvējiet etiķeti šādi:
- Label19 : Maksājums saņemts
- Label20 : Maksājuma veids
Navigācijas dēļa dizains
Pēdējā rāmī pievienojiet 3 pogas no rīklodziņa, kas satur kodu veidlapu izvietošanai. Pārdēvējiet pogas šādi:
- 1. poga : Saglabājiet informāciju
- 2. poga : notīrīt veidlapu
- 3. poga : iziet
Rakstīt automātisko formas kodu: poga informācijas saglabāšanai
Veiciet dubultklikšķi uz pogas Saglabāt informāciju . Nākamajā modulī ievietojiet šādu kodu:
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
Koda skaidrojums automatizētā formā:
Tekstlodziņi ietver teksta un ciparu vērtības, tāpēc jums ir jāierobežo lietotāja ievade. Pieteikuma numurs, studenta ID, vecums, tālrunis, kursa ID un kursa ilgums saturēs tikai ciparus, pārējais saturs tekstu.
Izmantojot komandu IF , kods aktivizē kļūdas uznirstošo logu, ja lietotājs ievada rakstzīmi vai teksta vērtību jebkurā ciparu laukā.
Tā kā pastāv kļūdu validācija, tekstlodziņi ir jāsaista ar darblapas šūnām.
Pēdējās rindas mainīgie aprēķina pēdējo aizpildīto rindu un saglabā vērtību iekšpusē elastīgai lietošanai.
Visbeidzot, šīs vērtības tiek ielīmētas saistītās Excel lapas tekstlodziņā.
Kodējiet veidlapu notīriet un iziet pogu
Notīrīšanas pogā jums ir jāraksta kods, kas no lietotāja veidlapas notīra pašreizējās vērtības, kā norādīts tālāk :
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
Izejas pogā lietotāja veidlapā ievadiet šādu kodu:
Private Sub CommandButton5_Click()
Unload Me
End Sub
Pēdējā darbībā jums jāievada daži pēdējie koda fragmenti, lai izveidotu nolaižamās vērtības kombinētajam lodziņam (norādes rāmī).
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
Iepriekš aprakstīts, kā programmā Excel VBA izveidot automātisku datu ievades veidlapu . Cerams, ka raksts jums ir noderīgs.