Uporaba obrazcev v VBA vam daje prazno platno za oblikovanje in urejanje obrazcev, ki bodo kadar koli ustrezali vašim potrebam. S Download.vn se naučimo , kako ustvariti samodejne obrazce za vnos podatkov v Excel VBA !
Ustvarite uporabniški obrazec z uporabo Excel VBA
Odprite nov Excelov delovni zvezek in izvedite nekaj predhodnih korakov, preden začnete ustvarjati obrazec za vnos podatkov.
Shranite delovni zvezek z želenim imenom, ne pozabite spremeniti vrste datoteke v Excelov delovni zvezek z omogočenimi makri.
V ta delovni zvezek dodajte 2 lista z naslednjimi imeni:
- List1 : Domov
- Sheet2 : Baza podatkov študentov
Seveda lahko njihova imena spremenite po želji.
Na začetni list dodajte gumb za nadzor makra uporabniškega obrazca. Pojdite na zavihek Razvijalec > kliknite gumb na spustnem seznamu Vstavi . Ta gumb postavite kamor koli v preglednico.
Ko postavite gumb, ga preimenujte. Z desno tipko miške kliknite nanjo > kliknite Novo , da priložite makro, ki prikaže obrazec.
V okno urejevalnika vnesite naslednjo kodo:
Sub Button1_Click()
UserForm.Show
End Sub
Ko sta domači list in podatkovna baza študentov pripravljeni, je čas, da oblikujete uporabniški obrazec. Pomaknite se do zavihka Razvijalec > kliknite Visual Basic , da odprete urejevalnik . Lahko pa pritisnete ALT+F11 , da odprete okno urejevalnika.
Kliknite zavihek Vstavi in izberite Uporabniški obrazec . Uporabniški obrazec je pripravljen za uporabo. S tem obrazcem se odpre spremljajoča orodjarna, ki vsebuje vsa orodja, potrebna za oblikovanje postavitve.
V tej orodni vrstici izberite Okvir . Povlecite ga v uporabniški obrazec in mu spremenite velikost.
V (ime) lahko spremenite ime tega okvira. Če želite prikazati ime na sprednji strani, lahko spremenite ime v stolpcu Caption .
Nato v orodju izberite Oznaka in v to polje vstavite 2 nalepki. Preimenujte prvo ime v Številka prijave in drugo ime v ID študenta .
Uporabite isti postopek preimenovanja prek Caption v Properties . Prepričajte se, da ste izbrali ustrezno oznako, preden jo preimenujete.
Nato v polje z nalepko vstavite 2 besedilni polji. Uporabljeni bodo za zajemanje uporabniških vnosov. Spremenite imena dveh besedilnih polj v stolpcu (Ime) v Lastnostih , kot sledi:
- Textbox1 : txtApplicationNo
- Textbox2 : txtStudentID
Oblikovanje študentskega informacijskega ogrodja
Vstavite navpični okvir in dodajte 10 oznak in 10 besedilnih polj. Preimenujte oznako na naslednji način:
- Oznaka3 : ime
- Oznaka 4 : starost
- Oznaka5 : Naslov
- Oznaka6 : Telefon
- Oznaka7 : Mesto
- Label8 : Država
- Label9 : datum rojstva
- Oznaka10 : poštna številka
- Oznaka 11 : Državljanstvo
- Oznaka 12 : spol
Vstavite ustrezno besedilno polje zraven teh oznak, tako da vstavite iz dveh polj gumbov z možnostmi iz orodjarne uporabniškega obrazca poleg oznake spola. Spremenite njihova imena v Moški in Ženski (po meri).
Oblikujte podroben okvir tečaja
Dodajte še en okvir navpično in vstavite 6 nalepk, 6 besedilnih polj, ki ustrezajo vsaki oznaki. Preimenujte nalepko na naslednji način:
- Oznaka13 : Ime tečaja
- Oznaka14 : ID tečaja
- Oznaka15 : Začetni datum vpisa
- Oznaka16 : Končni datum vpisa
- Oznaka17 : Trajanje tečaja
- Oznaka18 : Oddelek
Okvir s podrobnostmi o plačilu
Vstavite nov okvir, dodajte novo oznako in jo preimenujte "Ali želite posodobiti podatke o plačilu?" Vstavite 2 gumba možnosti ; preimenujte jih v Da in Ne .
Podobno dodajte nov okvir, ki vsebuje 2 dodatni oznaki in 2 kombinirani polji. Preimenujte oznako na naslednji način:
- Oznaka19 : Prejeto plačilo
- Oznaka20 : način plačila
Dizajn navigacijske plošče
V zadnji okvir dodajte 3 gumbe iz orodjarne, ki vsebujejo kodo za razmestitev obrazcev. Preimenujte gumbe na naslednji način:
- Button1 : Shrani podrobnosti
- Button2 : Počisti obrazec
- Gumb 3 : Izhod
Napiši samodejno kodo obrazca: Gumb za shranjevanje informacij
Dvokliknite gumb Shrani podrobnosti . V naslednji modul vstavite to kodo:
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
Razlaga kode v avtomatizirani obliki:
Besedilna polja vključujejo besedilne in številske vrednosti, zato morate omejiti uporabniški vnos. Številka prijave, študentska izkaznica, starost, telefon, ID tečaja in trajanje tečaja bodo vsebovali samo številke, ostalo bo vsebovalo besedilo.
Z uporabo ukaza IF koda sproži pojavno okno z napako, če uporabnik vnese znak ali besedilno vrednost v katero koli številsko polje.
Ker obstaja preverjanje napak, morate besedilna polja povezati s celicami na delovnem listu.
Spremenljivke lastrow izračunajo zadnjo izpolnjeno vrstico in shranijo vrednost notri za prilagodljivo uporabo.
Na koncu so te vrednosti prilepljene v besedilno polje na povezanem Excelovem listu.
Kodirajte gumb za brisanje obrazca in izhod
V gumb za brisanje morate napisati kodo, ki počisti trenutne vrednosti iz obrazca uporabnika, kot sledi:
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
V gumb za izhod vnesite naslednjo kodo v obrazec uporabnika:
Private Sub CommandButton5_Click()
Unload Me
End Sub
V zadnjem koraku morate vnesti zadnjih nekaj kosov kode, da ustvarite spustne vrednosti za kombinirano polje (v okvirju za odjavo).
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
Zgoraj je opisano, kako ustvariti obrazec za samodejni vnos podatkov v programu Excel VBA . Upam, da vam je članek koristen.