„Visual Basic“ yra puiki kalba, skirta automatizuoti pasikartojančias užduotis programoje „Excel“. Įsivaizduokite, kad padidinsite savo automatizavimą kurdami labai funkcionalias vartotojo formas, kurios galutiniams vartotojams taip pat atrodo tvarkingos.
Vartotojo formos VBA pateikia jums tuščią drobę; Jūs galite kurti ir tvarkyti formas pagal savo poreikius bet kuriuo metu.
Šiame vadove išmoksite sukurti mokiniui skirtą duomenų įvedimo formą, kuri fiksuotų atitinkamą informaciją susietuose Excel lapuose.
Vartotojo formos sukūrimas naudojant Excel VBA
Atidarykite naują „Excel“ darbaknygę ir atlikite kelis parengiamuosius veiksmus prieš pradėdami kurti duomenų įvedimo formą.
Išsaugokite savo darbaknygę norimu pavadinimu; nepamirškite pakeisti failo tipo į an „Excel“ darbaknygė su makrokomandomis.
Susijęs:Svetainės ir tinklaraščiai, skirti išmokti „Excel“ patarimų ir gudrybių
Prie šios darbaknygės pridėkite du lapus tokiais pavadinimais:
- 1 lapas: Namai
- 2 lapas:Studentų duomenų bazė
Nedvejodami pakeiskite šiuos pavadinimus pagal savo poreikius.
Viduje Namai lapą, pridėkite mygtuką, skirtą vartotojo formos makrokomandai valdyti. Eikite į Programuotojas skirtuką ir spustelėkite Mygtukas parinktis iš Įdėti Pasirinkimu sarasas. Padėkite mygtuką bet kurioje lapo vietoje.
Įdėję mygtuką, pervardykite jį. Dešiniuoju pelės mygtuku spustelėkite jį ir spustelėkite Nauja Norėdami priskirti naują makrokomandą formai rodyti.
Įveskite šį kodą redaktoriaus lange:
Sub Button1_Click ()
Vartotojo forma. Rodyti
Pabaigos sub
Kartą Namai ir Studentų duomenų bazė lapai paruošti, laikas sukurti vartotojo formą. Eikite į Programuotojas skirtuką ir spustelėkite Visual Basic norėdami atidaryti redaktorių. Arba galite paspausti ALT+F11 norėdami atidaryti redaktoriaus langą.
Spustelėkite ant Įdėti skirtuką ir pasirinkite Vartotojo forma.
Tuščia vartotojo forma paruošta naudoti; kartu su forma atsidaro pridedama įrankių dėžė, kurioje yra visi pagrindiniai maketui sukurti įrankiai.
Įrankių laukelyje pasirinkite Rėmas variantas. Vilkite tai į vartotojo formą ir pakeiskite jos dydį.
Viduje (vardas) parinktį, galite pakeisti rėmelio pavadinimą. Norėdami parodyti vardą priekinėje dalyje, galite pakeisti pavadinimą Antraštė stulpelyje.
Tada pasirinkite Etiketė parinktį iš įrankių rinkinio ir įterpkite dvi etiketes šiame rėmelyje. Pirmąjį pervardykite į Paraiškos numeris o antrasis kaip Studento pažymėjimas.
Taikoma ta pati pervadinimo logika; pakeiskite vardus naudodami Antraštė parinktis viduje Savybės langas. Prieš keisdami pavadinimą, būtinai pasirinkite atitinkamą etiketę.
Tada šalia etikečių laukelių įterpkite du teksto laukelius. Jie bus naudojami vartotojo įvestims užfiksuoti. Pakeiskite dviejų teksto laukelių pavadinimus naudodami (Vardas) stulpelyje Savybės langas. Vardai yra tokie:
- 1 teksto laukelis: txtProgramos Nr
- 2 teksto laukelis: txtStudentID
Mokinio detalių rėmelio projektavimas
Įdėkite vertikalų rėmelį ir pridėkite 10 etikečių ir 10 teksto laukelių. Pervardykite kiekvieną iš jų taip:
- 3 etiketė: vardas
- 4 etiketė: Amžius
- 5 etiketė: Adresas
- 6 etiketė: Telefonas
- 7 etiketė: Miestas
- 8 etiketė: Šalis
- 9 etiketė: Gimimo data
- 10 etiketė: Pašto kodas
- 11 etiketė: Tautybė
- 12 etiketė: Lytis
Šalia šių etikečių įterpti atitinkamus teksto laukelius; įdėkite du (ar daugiau) parinkčių mygtukas langelius iš vartotojo formos įrankių dėžutės, esančios šalia Lytis etiketė. Pervardykite juos Patinas ir Moteris (kartu su Custom), atitinkamai.
Kurso detalių rėmelio kūrimas
Pridėkite dar vieną vertikalų rėmelį ir įterpkite šešias etiketes ir šešis teksto laukelius, atitinkančius kiekvieną etiketę. Pervardykite etiketes taip:
- 13 etiketė: Kurso pavadinimas
- 14 etiketė: Kurso ID
- 15 etiketė: Registracijos pradžios data
- 16 etiketė: Registracijos pabaigos data
- 17 etiketė: Kurso trukmė
- 18 etiketė: skyrius
Susijęs: 4 klaidos, kurių reikia vengti programuojant „Excel“ makrokomandas su VBA
Mokėjimo informacijos rėmelio kūrimas
Įdėkite naują rėmelį; pridėti naują etiketę ir pervadinti ją "Ar norite atnaujinti mokėjimo informaciją?" Įdėkite du parinkčių mygtukai; pervardyti juos Taip ir Nr.
Panašiai pridėkite naują rėmelį, kuriame yra dvi papildomos etiketės ir du kombinuoti langeliai. Pervardykite etiketes taip:
- 19 etiketė: Apmokėjimas gautas
- 20 etiketė: Mokėjimo būdas
Naršymo srities projektavimas
Paskutiniame kadre pridėkite tris mygtukus iš įrankių rinkinio, kuriame bus formų vykdymo kodas.
Pervardykite mygtukus taip:
- 1 mygtukas: Išsaugoti informaciją
- 2 mygtukas: Švari anketa
- 3 mygtukas: Išeiti
Automatizuotos formos kodo rašymas: mygtukas Išsaugoti išsamią informaciją
Dukart spustelėkite Išsaugoti informaciją mygtuką. Tolesniame modulyje įveskite šį kodą:
Private Sub CommandButton2_Click()
„nurodykite kintamuosius, naudojamus visuose koduose
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long„Pridėkite patvirtinimus, kad patikrintumėte, ar simbolių reikšmės įvedamos į skaitinius laukus.
Jei VBA.IsNumeric (txtApplicationNo. Value) = False Tada
MsgBox "Paraiškos numeryje priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jeiJei VBA.IsNumeric (txtStudentID.Value) = False Tada
MsgBox "Studento ID priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jeiJei VBA.IsNumeric (txtAge. Reikšmė) = Netiesa Tada
MsgBox "Amžiuje priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jeiJei VBA.IsNumeric (txtPhone. Reikšmė) = Netiesa Tada
MsgBox "Telefono numeriuose priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jeiJei VBA.IsNumeric (Me.txtCourseID.Value) = False, tada
MsgBox "Kurso ID priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jei„susiekite teksto laukelio laukus su pagrindiniais lapais, kad sukurtumėte nuolatinę duomenų bazę
Nustatyti sht = ThisWorkbook. Lapai („Studentų duomenų bazė“)'apskaičiuokite paskutinę užpildytą eilutę abiejuose lapuose
paskutinė eilutė = sht. Diapazonas („a“ ir eilutės. Skaičiavimas).Pabaiga (xlUp).Eilutė + 1
Įklijuokite kiekvieno teksto laukelio reikšmes į atitinkamus lapo langelius
Su sht
.Range("a" & lastrow).Value = txtApplicationNo. Vertė
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName. Vertė
.Range("d" & lastrow).Value = txtAge. Vertė
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress. Vertė
.Range("h" & paskutinė eilutė).Value = txtPhone. Vertė
.Range("i" & lastrow).Value = txtCity. Vertė
.Range("j" & lastrow).Value = txtŠalis. Vertė
.Range("k" & lastrow).Value = txtZip. Vertė
.Range("l" & lastrow).Value = txtNationalality. Vertė
.Range("m" & lastrow).Value = txtCourse. Vertė
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentsstar. Vertė
.Range("p" & lastrow).Value = txtenrollmentend. Vertė
.Range("q" & lastrow).Value = txtcourseduration. Vertė
.Range("r" & lastrow).Value = txtDept. VertėBaigti su
sht. Suaktyvinti'nustatykite lytį pagal vartotojo įvestį
Jei optMale. Reikšmė = True Tada sht. Diapazonas ("g" ir paskutinė eilutė). Reikšmė = "Vyras"
Jei pasirenkateMoteris. Reikšmė = True Tada sht. Diapazonas ("g" ir paskutinė eilutė). Reikšmė = "Moteris"
„Rodyti pranešimo laukelį, jei vartotojas pasirinks radijo mygtuką TaipJei pasirinkta Taip. Reikšmė = Tikra Tada
MsgBox "Prašome pasirinkti mokėjimo informaciją žemiau"
Kitas:
Išeiti iš subPabaiga, jei
Pabaigos sub
Jei nesate tikri, ką reiškia dalys ar koks nors kodas, nesijaudinkite. Mes tai išsamiai paaiškinsime kitame skyriuje.
Paaiškintas automatinės formos kodas
Teksto laukeliuose bus teksto ir skaitinių reikšmių derinys, todėl labai svarbu apriboti vartotojo įvestį. The Paraiškos numeris, Studento pažymėjimas, Amžius, Telefonas, Kurso ID, ir Kurso trukmė turi būti tik skaičiai, o likusioje dalyje bus tekstas.
Naudojant an JEI Kodas suaktyvina klaidos iškylančiuosius langus, jei vartotojas įveda simbolį arba teksto reikšmę bet kuriame skaitiniame lauke.
Kadangi klaidų patvirtinimai yra vietoje, turite susieti teksto laukelius su lapo langeliais.
The paskutinė eilė kintamieji apskaičiuos paskutinę užpildytą eilutę ir išsaugos jose reikšmes dinaminiam naudojimui.
Galiausiai reikšmės įklijuojamos iš teksto laukelių į susietą Excel lapą.
Išvalykite formos ir išėjimo mygtukų kodus
Viduje aišku mygtuką, turite parašyti kodą, kad išvalytumėte esamas reikšmes iš vartotojo formos. Tai galima padaryti tokiu būdu:
Su manimi
.txtApplicationNr. Reikšmė = ""
.txtStudentID.Value = ""
..txtName. Reikšmė = ""
.txtAge. Reikšmė = ""
.txtAdresas. Reikšmė = ""
.txtPhone. Reikšmė = ""
.txtCity. Reikšmė = ""
.txtŠalis. Reikšmė = ""
.txtDOB.Value = ""
.txtZip. Reikšmė = ""
.txtTautybė. Reikšmė = ""
.txtKursas. Reikšmė = ""
.txtCourseID.Value = ""
.txtenrollmentsstart. Reikšmė = ""
.txtenrollmentend. Reikšmė = ""
.txtcourseduration. Reikšmė = ""
.txtDept. Reikšmė = ""
.cmbPaymentMode. Reikšmė = ""
.cmbMokėjimas. Reikšmė = ""
.optMoteris. Reikšmė = klaidinga
.optMale. Reikšmė = klaidinga
.optTaip. Reikšmė = klaidinga
.optNo. Reikšmė = klaidinga
Baigti su
Viduje išeiti mygtuką, įveskite šį kodą, kad uždarytumėte vartotojo formą.
Private Sub CommandButton5_Click()
Iškrauti mane
Pabaigos sub
Paskutiniame etape turite įvesti keletą paskutinių kodo dalių, kad sukurtumėte išskleidžiamąsias kombinuotųjų laukelių vertes (mokėjimo rėmuose).
Private Sub UserForm_Activate()
Su cmbPayment
.Aišku
.Pridėti daiktą ""
.Pridėti elementą "Taip"
.Pridėti elementą "Ne"
Baigti su
Su cmbPaymentMode
.Aišku
.Pridėti daiktą ""
.Pridėti elementą "Grynieji pinigai"
.Pridėti elementą "kortelė"
.Pridėti elementą "Patikrinti"
Baigti su
Pabaigos sub
VBA automatika palengvina darbą
VBA yra daugialypė kalba, skirta daugeliui tikslų. Vartotojo formos yra tik vienas iš VBA aspektų – yra daug kitų naudojimo būdų, pvz., darbaknygių ir darbalapių konsolidavimas, kelių „Excel“ lapų sujungimas ir kiti patogūs automatizavimo būdai.
Nepriklausomai nuo automatizavimo tikslo, VBA atlieka savo užduotį. Jei nuolat mokotės ir praktikuojatės, nėra nė vieno darbo eigos aspekto, kurio negalėtumėte patobulinti.
Duomenų sujungimas iš daugiau nei vieno „Excel“ lapo toje pačioje darbaknygėje yra tikras vargas... kol nenaudosite VBA makrokomandų.
Skaitykite toliau
- Programavimas
- Produktyvumas
- Visual Basic programavimas
- Microsoft Excel

Gaurav Siyal turi dvejų metų rašymo patirtį, rašo skaitmeninės rinkodaros įmonėms ir programinės įrangos gyvavimo ciklo dokumentus.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Spauskite čia norėdami užsiprenumeruoti