Visual Basic on suurepärane keel korduvate toimingute automatiseerimiseks Excelis. Kujutage ette, et tõstate oma automatiseerimist uue sammu, luues väga funktsionaalsed kasutajavormid, mis näevad ka lõppkasutajatele korralikud.

VBA kasutajavormid esitavad teile tühja lõuendi; saate kujundada ja korraldada vorme vastavalt oma vajadustele igal ajahetkel.

Selles juhendis õpite looma õpilastepõhist andmesisestusvormi, mis salvestab asjakohase teabe lingitud Exceli lehtedele.

Kasutajavormi loomine Excel VBA-ga

Avage uus Exceli töövihik ja tehke enne andmesisestusvormi loomise alustamist mõned eeltoimingud.

Salvestage oma töövihik soovitud nimega; ärge unustage muuta faili tüübiks an Exceli makrotoega töövihik.

Seotud:Veebisaidid ja ajaveebid Exceli näpunäidete ja näpunäidete õppimiseks

Lisage sellele töövihikule kaks lehte järgmiste nimedega:

  1. Leht1: Kodu
  2. Leht2: Üliõpilaste andmebaas

Muutke neid nimesid vastavalt oma vajadustele.

Aastal Kodu lehel lisage nupp kasutajavormi makro juhtimiseks. Mine lehele

instagram viewer
Arendaja vahekaarti ja klõpsake nuppu Nupp valik alates Sisesta rippmenüü. Asetage nupp lehel ükskõik kuhu.

Kui olete nupu asetanud, nimetage see ümber. Paremklõpsake sellel ja klõpsake nuppu Uus vormi kuvamiseks uue makro määramiseks.

Sisestage redaktori aknasse järgmine kood:

Alamnupp1_Click()
Kasutajavorm. Näita
Lõpeta alam

Kord Kodu ja Õpilaste andmebaas lehed on valmis, on aeg kujundada kasutajavorm. Navigeerige lehele Arendaja vahekaarti ja klõpsake nuppu Visual Basic redaktori avamiseks. Teise võimalusena võite vajutada ALT+F11 redaktori akna avamiseks.

Klõpsake nuppu Sisesta vahekaarti ja valige Kasutajavorm.

Tühi kasutajavorm on kasutamiseks valmis; koos vormiga avaneb kaasasolev tööriistakast, kus on kõik küljenduse kujundamiseks vajalikud tööriistad.

Valige tööriistakastist Raam valik. Lohistage see kasutajavormi ja muutke selle suurust.

Aastal (nimi) valikuga saate raami nime muuta. Nime esiotsas kuvamiseks saate nime muuta Pealkiri veerg.

Järgmisena valige Silt tööriistakastist ja sisestage sellesse raami kaks silti. Nimetage esimene ümber kui Avalduse number ja teine ​​as Õpilase ID.

Sama ümbernimetamise loogika kehtib; muutke nimesid Pealkiri valik sees Omadused aken. Enne nime muutmist valige kindlasti vastav silt.

Järgmisena sisestage sildikastide kõrvale kaks tekstikasti. Neid kasutatakse kasutaja sisendite jäädvustamiseks. Muutke kahe tekstikasti nimesid (nimi) veerus Omadused aken. Nimed on järgmised:

  • Tekstikast1: txtRakendus nr
  • Tekstikast2: txtÕpilase ID

Õpilase detailide raami kujundamine

Sisestage vertikaalne raam ja lisage 10 silti ja 10 tekstikasti. Nimetage igaüks neist ümber järgmisel viisil:

  • Silt3: Nimi
  • Silt4: Vanus
  • Silt5: Aadress
  • Silt6: Telefon
  • Silt7: Linn
  • Silt8: Riik
  • Silt9: Sünnikuupäev
  • Silt10: Postiindeks
  • Silt11: Rahvus
  • Silt12: Sugu

Sisestage nende siltide kõrvale vastavad tekstikastid; sisestage kaks (või enam) valikunupp kastid kõrval asuvast kasutajavormi tööriistakastist sugu silt. Nimetage need ümber Mees ja Naine (koos Customiga) vastavalt.

Kursuse üksikasjade raami kujundamine

Lisage veel üks vertikaalne raam ja sisestage kuus silti ja kuus tekstikasti, mis vastavad igale sildile. Nimetage sildid ümber järgmiselt:

  • Silt13: Kursuse nimi
  • Silt14: Kursuse ID
  • Silt15: Registreerimise alguskuupäev
  • Silt16: Registreerimise lõppkuupäev
  • Silt17: Kursuse kestus
  • Silt18: osakond

Seotud: 4 viga, mida vältida Exceli makrode VBA-ga programmeerimisel

Makseandmete raami kujundamine

Sisestage uus raam; lisage uus silt ja nimetage see ümber "Kas soovite maksete üksikasju värskendada?" Sisestage kaks valikunupud; nimeta need ümber Jah ja Ei.

Samamoodi lisage uus raam, mis sisaldab kahte täiendavat silti ja kahte liitkasti. Nimetage sildid ümber järgmiselt:

  • Silt19: Makse laekunud
  • Silt20: Makseviis

Navigeerimispaani kujundamine

Viimases kaadris lisage tööriistakastist kolm nuppu, mis sisaldavad vormide täitmise koodi.

Nimetage nupud ümber järgmisel viisil:

  • Nupp1: Salvesta üksikasjad
  • Nupp2: Selge vorm
  • Nupp3: Välju

Automaatvormi koodi kirjutamine: nupp Salvesta üksikasjad

Topeltklõpsake ikooni Salvesta üksikasjad nuppu. Sisestage järgnevasse moodulisse järgmine kood:

Privaatne alam CommandButton2_Click()

„deklareerida koodides kasutatud muutujad
Dim sht töölehena, sht1 töölehena, lastrow As Long

Lisage kinnitused, et kontrollida, kas numbriväljadele sisestatakse märgiväärtusi.
Kui VBA.IsNumeric (txtApplicationNo. Value) = Väär, siis
MsgBox "Rakenduse numbris aktsepteeritakse ainult arvväärtusi", vbCritical
Välju Sub
Lõpeta Kui

Kui VBA.IsNumeric (txtStudentID.Value) = Väär, siis
MsgBox "Õpilase ID-s aktsepteeritakse ainult arvväärtusi", vbCritical
Välju Sub
Lõpeta Kui

Kui VBA.IsNumeric (txtAge. Väärtus) = Väär siis
MsgBox "Vanuses aktsepteeritakse ainult arvväärtusi", vbCritical
Välju Sub
Lõpeta Kui

Kui VBA.IsNumeric (txtPhone. Väärtus) = Väär siis
MsgBox "Telefoninumbris aktsepteeritakse ainult arvväärtusi", vbCritical
Välju Sub
Lõpeta Kui

Kui VBA.IsNumeric (Me.txtCourseID.Value) = Väär, siis
MsgBox "Kursuse ID-s aktsepteeritakse ainult arvväärtusi", vbCritical
Välju Sub
Lõpeta Kui

'linkida tekstikasti väljad aluseks olevate lehtedega, et luua jooksev andmebaas
Määra sht = see töövihik. Sheets ("õpilaste andmebaas")

'arvuta mõlema lehe viimane täidetud rida

lastrow = sht. Vahemik ("a" & read. Loendus).Lõpp (xlUp).Rida + 1

kleepige iga tekstikasti väärtused vastavatesse lehe lahtritesse

Koos sht
.Range("a" & lastrow).Väärtus = txtApplicationNo. Väärtus
.Range("b" & lastrow).Väärtus = txtStudentID.Value
.Range("c" & lastrow).Väärtus = txtName. Väärtus
.Range("d" & lastrow).Väärtus = txtAge. Väärtus
.Range("e" & lastrow).Väärtus = txtDOB.Väärtus
.Range("g" & lastrow).Väärtus = txtAddress. Väärtus
.Range("h" & lastrow).Väärtus = txtPhone. Väärtus
.Range("i" & lastrow).Väärtus = txtCity. Väärtus
.Range("j" & lastrow).Väärtus = txtRiik. Väärtus
.Range("k" & lastrow).Väärtus = txtZip. Väärtus
.Range("l" & lastrow).Väärtus = txtNationality. Väärtus
.Range("m" & lastrow).Väärtus = txtKurss. Väärtus
.Range("n" & lastrow).Väärtus = txtCourseID.Value
.Range("o" & lastrow).Väärtus = txtenrollmentsstart. Väärtus
.Range("p" & lastrow).Väärtus = txtenrollmentend. Väärtus
.Range("q" & lastrow).Väärtus = txtcourseduration. Väärtus
.Range("r" & lastrow).Väärtus = txtDept. Väärtus

Lõpeta
sht. Aktiveerige

määrake sugu vastavalt kasutaja sisendile
Kui optMale. Väärtus = Tõene Siis sht. Vahemik("g" & viimane rida).Väärtus = "mees"
Kui optNaine. Väärtus = Tõene Siis sht. Vahemik("g" & viimane rida).Väärtus = "Naine"
'Kuva teatekast juhuks, kui kasutaja valib raadionupu Jah

Kui valite Jah. Väärtus = Tõene Siis
MsgBox "Palun valige allpool makse üksikasjad"
Muu:
Välju Sub

Lõpeta Kui

Lõpeta alam

Kui te pole kindel, mida osad või mõni kood tähendab, ärge muretsege. Selgitame seda põhjalikult järgmises osas.

Selgitatud automatiseeritud vormikood

Tekstikastid sisaldavad nii teksti kui ka arvulisi väärtusi, seega on oluline piirata kasutaja sisestust. The Avalduse number, Õpilase ID, Vanus, Telefon, Kursuse ID, ja Kursuse kestus peaks sisaldama ainult numbreid, ülejäänud aga teksti.

Kasutades an KUI lause, käivitab kood veahüpikaknad, kui kasutaja sisestab mõnele numbriväljale märgi või tekstiväärtuse.

Kuna veakontrollid on paigas, peate tekstikastid linkima lehe lahtritega.

The viimane rida muutujad arvutavad viimase täidetud rea ja salvestavad neisse väärtused dünaamiliseks kasutamiseks.

Lõpuks kleebitakse väärtused tekstikastidest lingitud Exceli lehele.

Tühjendage vormi ja väljumisnupu koodid

Aastal selge nuppu, peate kirjutama koodi, et kustutada olemasolevad väärtused kasutajavormist. Seda saab teha järgmisel viisil:

Minuga
.txtApplicationNo. Väärtus = ""
.txtStudentID.Value = ""
..txtName. Väärtus = ""
.txtAge. Väärtus = ""
.txtAddress. Väärtus = ""
.txtPhone. Väärtus = ""
.txtCity. Väärtus = ""
.txtRiik. Väärtus = ""
.txtDOB.Value = ""
.txtZip. Väärtus = ""
.txtRiikkondsus. Väärtus = ""
.txtKursus. Väärtus = ""
.txtCourseID.Value = ""
.txtenrollmentsstart. Väärtus = ""
.txtenrollmentend. Väärtus = ""
.txtcourseduration. Väärtus = ""
.txtDept. Väärtus = ""
.cmbPaymentMode. Väärtus = ""
.cmbMakse. Väärtus = ""
.optNaine. Väärtus = vale
.optMale. Väärtus = vale
.optJah. Väärtus = vale
.optNo. Väärtus = vale

Lõpeta

Aastal väljuda nuppu, sisestage kasutajavormi sulgemiseks järgmine kood.

Privaatne alam CommandButton5_Click()
Laadi mind maha
Lõpeta alam

Viimase sammuna peate sisestama mõned viimased koodijupid, et luua liitkastide jaoks rippmenüü väärtused (makseraamide sees).

Privaatne alamkasutajaForm_Activate()

cmbPaymentiga
.Selge
.AddItem ""
.Add Item "Jah"
.AddItem "Ei"
Lõpeta
Koos cmbPaymentMode'iga

.Selge
.AddItem ""
.Add Item "sularaha"
.Add Item "kaart"
.AddItem "Check"
Lõpeta
Lõpeta alam

VBA automatiseerimine muudab töö lihtsamaks

VBA on mitmetahuline keel, millel on palju eesmärke. Kasutajavormid on VBA-s vaid üks aspekt – on palju muid kasutusviise, nagu töövihikute ja töölehtede koondamine, mitme Exceli lehe liitmine ja muud käepärased automatiseerimisvõimalused.

Olenemata automatiseerimise eesmärgist on VBA oma ülesannete kõrgusel. Kui jätkate õppimist ja harjutamist, pole teie töövoos ühtegi aspekti, mida te ei saaks parandada.

Mitme Exceli lehe liitmine VBA makro abil

Rohkem kui ühelt Exceli lehelt andmete liitmine samasse töövihikusse on tõeline tüli... kuni kasutate VBA makrosid.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Tootlikkus
  • Visual Basic programmeerimine
  • Microsoft Excel
Autori kohta
Gaurav Siyal (50 avaldatud artiklit)

Gaurav Siyal on kaheaastane kirjutamiskogemus, kirjutades mitmetele digitaalse turunduse ettevõtetele ja tarkvara elutsükli dokumentidele.

Rohkem Gaurav Siyalilt

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin