Naudodami VBA formas galite bet kuriuo metu kurti ir tvarkyti formas pagal jūsų poreikius. Su Download.vn išmokime sukurti automatines duomenų įvedimo formas programoje Excel VBA !
Sukurkite vartotojo formą naudodami Excel VBA
Atidarykite naują „Excel“ darbaknygę ir atlikite kelis parengiamuosius veiksmus prieš pradėdami kurti duomenų įvedimo formą.
Išsaugokite darbaknygę norimu pavadinimu, nepamirškite pakeisti failo tipo į Excel Macro-Enabled Workbook.
Prie šios darbaknygės pridėkite 2 lapus tokiais pavadinimais:
- 1 lapas : Pagrindinis puslapis
- 2 lapas : Studentų duomenų bazė
Žinoma, galite keisti jų vardus, kaip norite.
Pagrindiniame lape pridėkite vartotojo formos makrokomandos valdymo mygtuką. Eikite į skirtuką Kūrėjas > spustelėkite mygtuką išskleidžiamajame sąraše Įterpti . Įdėkite šį mygtuką bet kurioje skaičiuoklės vietoje.
Įdėję mygtuką, pervardykite jį. Dešiniuoju pelės mygtuku spustelėkite jį > spustelėkite Naujas , kad pridėtumėte makrokomandą, kurioje pateikiama forma.
Įveskite šį kodą redaktoriaus lange:
Sub Button1_Click()
UserForm.Show
End Sub
Kai pagrindinis lapas ir mokinių duomenų bazė yra paruošti, laikas sukurti vartotojo formą. Eikite į skirtuką Kūrėjas > spustelėkite Visual Basic , kad atidarytumėte redaktorių . Arba galite paspausti ALT+F11 , kad atidarytumėte redaktoriaus langą.
Spustelėkite skirtuką Įterpti ir pasirinkite UserForm . Vartotojo forma paruošta naudoti. Su šia forma atidaroma pridedama įrankių rinkinys, kuriame yra visi maketui sukurti reikalingi įrankiai.
Šioje įrankių juostoje pasirinkite Rėmas . Vilkite jį į vartotojo formą ir pakeiskite jos dydį.
Skiltyje (vardas) galite pakeisti šio rėmelio pavadinimą. Jei norite, kad vardas būtų rodomas priekinėje dalyje, galite pakeisti pavadinimą stulpelyje Antraštė .
Tada įrankių rinkinyje pasirinkite Etiketė ir įdėkite 2 lipdukus į šį laukelį. Pervardykite vardą į Paraiškos numeris , o antrąjį - į Studento ID .
Taikykite tą patį pervadinimo procesą naudodami antraštę ypatybėse . Prieš pervadindami būtinai pasirinkite atitinkamą etiketę.
Tada į lipduko laukelį įterpkite 2 teksto laukelius. Jie bus naudojami vartotojų įvestims užfiksuoti. Pakeiskite 2 teksto laukelių pavadinimus naudodami stulpelį (Vardas) ypatybėse taip:
- 1 teksto laukelis : txtApplicationNo
- 2 teksto laukelis : txtStudentID
Studentų informacinės sistemos kūrimas
Įdėkite vertikalų rėmelį ir pridėkite 10 etikečių ir 10 teksto laukelių. Pervardykite etiketę taip:
- 3 etiketė : vardas
- 4 etiketė : Amžius
- 5 etiketė : adresas
- 6 etiketė : Telefonas
- Etiketė 7 : miestas
- Etiketė 8 : Šalis
- Etiketė 9 : Gimimo data
- 10 etiketė : Pašto kodas
- Etiketė 11 : Tautybė
- 12 etiketė : lytis
Įterpkite atitinkamą teksto laukelį šalia šių etikečių, įterpdami iš dviejų parinkčių mygtukų laukelių iš vartotojo formos įrankių rinkinio šalia lyties etiketės. Pakeiskite jų vardus atitinkamai į Vyras ir Moteris (su tinkintu).
Sukurkite išsamią kurso struktūrą
Pridėkite kitą rėmelį vertikaliai ir įklijuokite 6 lipdukus, 6 teksto laukelius, atitinkančius kiekvieną etiketę. Pervardykite lipduką taip:
- 13 etiketė : kurso pavadinimas
- 14 etiketė : kurso ID
- 15 etiketė : registracijos pradžios data
- 16 etiketė : registracijos pabaigos data
- Label17 : Kurso trukmė
- Etiketė 18 : skyrius
Sukurkite mokėjimo detalių rėmelį
Įdėkite naują rėmelį, pridėkite naują etiketę ir pervardykite „Ar norite atnaujinti mokėjimo informaciją? Įdėkite 2 parinkčių mygtukus ; pervardykite juos į Taip ir Ne .
Panašiai pridėkite naują rėmelį, kuriame yra 2 papildomos etiketės ir 2 kombinuoti langeliai. Pervardykite etiketę taip:
- 19 etiketė : mokėjimas gautas
- Label20 : mokėjimo būdas
Navigacinės lentos dizainas
Paskutiniame kadre pridėkite 3 mygtukus iš įrankių rinkinio su kodu formoms įdiegti. Pervardykite mygtukus taip:
- 1 mygtukas : Išsaugokite išsamią informaciją
- 2 mygtukas : aiški forma
- 3 mygtukas : išeiti
Įrašykite automatinės formos kodą: mygtukas informacijai išsaugoti
Dukart spustelėkite mygtuką Išsaugoti informaciją . Kitame modulyje įveskite šį kodą:
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
Kodo paaiškinimas automatizuota forma:
Teksto laukeliuose yra teksto ir skaitinių reikšmių, todėl turite apriboti vartotojo įvestį. Paraiškos numeris, studento ID, amžius, telefonas, kurso ID ir kurso trukmė bus tik skaičiai, likusioje dalyje bus tekstas.
Naudojant komandą IF , kodas suaktyvina klaidos iššokantįjį langą, jei vartotojas įveda simbolį arba teksto reikšmę bet kuriame skaitiniame lauke.
Kadangi yra klaidų tikrinimas, turite susieti teksto laukelius su darbalapio langeliais.
Paskutinės eilutės kintamieji apskaičiuoja paskutinę užpildytą eilutę ir išsaugo vertę viduje, kad būtų galima lanksčiai naudoti.
Galiausiai šios reikšmės įklijuojamos į susieto „Excel“ lapo teksto laukelį.
Išvalykite formą ir užkoduokite išėjimo mygtuką
Išvalymo mygtuke turite parašyti kodą, kuris išvalys dabartines reikšmes iš vartotojo formos taip :
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
Išėjimo mygtuke įveskite šį kodą vartotojo formoje:
Private Sub CommandButton5_Click()
Unload Me
End Sub
Paskutiniame veiksme turite įvesti kelias paskutines kodo dalis, kad sukurtumėte išskleidžiamojo sąrašo reikšmes kombinuotajam laukeliui (atsiskaitymo rėmelyje).
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
Aukščiau aprašyta, kaip sukurti automatinio duomenų įvedimo formą programoje Excel VBA . Tikimės, kad straipsnis jums bus naudingas.