„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. 1 lapas: Namai
  2. 2 lapas:Studentų duomenų bazė

Nedvejodami pakeiskite šiuos pavadinimus pagal savo poreikius.

instagram viewer

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, jei

Jei VBA.IsNumeric (txtStudentID.Value) = False Tada
MsgBox "Studento ID priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jei

Jei VBA.IsNumeric (txtAge. Reikšmė) = Netiesa Tada
MsgBox "Amžiuje priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jei

Jei VBA.IsNumeric (txtPhone. Reikšmė) = Netiesa Tada
MsgBox "Telefono numeriuose priimamos tik skaitinės reikšmės", vbCritical
Išeiti iš sub
Pabaiga, jei

Jei 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ą Taip

Jei pasirinkta Taip. Reikšmė = Tikra Tada
MsgBox "Prašome pasirinkti mokėjimo informaciją žemiau"
Kitas:
Išeiti iš sub

Pabaiga, 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.

Kaip sujungti kelis „Excel“ lapus naudojant VBA makrokomandą

Duomenų sujungimas iš daugiau nei vieno „Excel“ lapo toje pačioje darbaknygėje yra tikras vargas... kol nenaudosite VBA makrokomandų.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Programavimas
  • Produktyvumas
  • Visual Basic programavimas
  • Microsoft Excel
Apie autorių
Gaurav Siyal (50 straipsnių paskelbta)

Gaurav Siyal turi dvejų metų rašymo patirtį, rašo skaitmeninės rinkodaros įmonėms ir programinės įrangos gyvavimo ciklo dokumentus.

Daugiau iš Gaurav Siyal

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