Visual Basic je izvrstan jezik za automatizaciju zadataka koji se ponavljaju u Excelu. Zamislite da svoju automatizaciju podignete na viši nivo stvaranjem vrlo funkcionalnih korisničkih obrazaca koji također izgledaju uredno krajnjim korisnicima.
Korisnički obrasci u VBA predstavljaju vam prazno platno; možete dizajnirati i organizirati obrasce kako bi odgovarali vašim potrebama u bilo kojem trenutku.
U ovom vodiču naučit ćete stvoriti obrazac za unos podataka koji se temelji na studentima koji bilježi relevantne informacije u povezanim Excel listovima.
Izrada korisničkog obrasca s Excel VBA
Otvorite novu radnu knjigu programa Excel i izvršite nekoliko preliminarnih koraka prije nego počnete stvarati obrazac za unos podataka.
Spremite svoju radnu bilježnicu pod željenim nazivom; ne zaboravite promijeniti vrstu datoteke u an Radna knjiga s omogućenim makronaredbama Excel.
Povezano:Web-mjesta i blogovi za učenje Excel savjeta i trikova
Dodajte dva lista ovoj radnoj knjizi sa sljedećim nazivima:
- List 1: Dom
- List 2:Studentska baza podataka
Slobodno promijenite ove nazive prema vašim zahtjevima.
U Dom list, dodajte gumb za upravljanje makronaredbom korisničkog obrasca. Idite na Programer karticu i kliknite na Dugme opcija iz Umetnuti padajući popis. Postavite gumb bilo gdje na listu.
Nakon što postavite gumb, preimenujte ga. Desnom tipkom miša kliknite na njega i kliknite na Novi da biste dodijelili novu makronaredbu za prikaz obrasca.
Unesite sljedeći kod u prozor uređivača:
Podgumb1_Klik()
Korisnički obrazac. Pokazati
Kraj Sub
Jednom Dom i Studentska baza podataka listovi su spremni, vrijeme je za dizajn korisničkog obrasca. Idite na Programer karticu i kliknite na Visual Basic za otvaranje uređivača. Alternativno, možete pritisnuti ALT+F11 za otvaranje prozora uređivača.
Klikni na Umetnuti karticu i odaberite Korisnički obrazac.
Prazan korisnički obrazac spreman je za korištenje; zajedno s formom otvara se prateći alatni okvir koji ima sve bitne alate za dizajniranje izgleda.
Iz okvira s alatima odaberite Okvir opcija. Povucite ovo na korisnički obrazac i promijenite mu veličinu.
U (Ime) opciju, možete promijeniti naziv okvira. Da biste prikazali ime na prednjem dijelu, možete promijeniti naziv u Naslov stupac.
Zatim odaberite Označiti opciju iz okvira s alatima i umetnite dvije oznake unutar ovog okvira. Preimenujte prvu kao Broj prijave a drugi kao studentska iskaznica.
Primjenjuje se ista logika preimenovanja; promijenite imena putem Naslov opcija unutar Svojstva prozor. Provjerite jeste li odabrali odgovarajuću oznaku prije nego promijenite njezin naziv.
Zatim umetnite dva tekstualna okvira pored okvira s oznakama. Oni će se koristiti za hvatanje unosa korisnika. Promijenite nazive dvaju tekstualnih okvira putem (Ime) stupac unutar Svojstva prozor. Imena su sljedeća:
- Tekstualni okvir1: txtApplicationNo
- Tekstualni okvir 2: txtID studenta
Dizajniranje okvira s detaljima učenika
Umetnite okomiti okvir i dodajte 10 naljepnica i 10 tekstualnih okvira. Preimenujte svaki od njih na sljedeći način:
- Oznaka 3: Ime
- Oznaka 4: Dob
- Oznaka 5: Adresa
- Oznaka 6: Telefon
- Oznaka 7: Grad
- Oznaka 8: Zemlja
- Oznaka 9: Datum rođenja
- Oznaka 10: Poštanski broj
- Oznaka 11: Nacionalnost
- Oznaka 12: Spol
Umetnite odgovarajuće tekstualne okvire pored ovih oznaka; umetnuti dva (ili više) gumb opcija okvire iz alatnog okvira korisničkog obrasca pored rodu označiti. Preimenujte ih Muški i Žena (zajedno s Custom).
Dizajniranje okvira pojedinosti tečaja
Dodajte još jedan okomiti okvir i umetnite šest oznaka i šest tekstualnih okvira koji odgovaraju svakoj naljepnici. Preimenujte oznake na sljedeći način:
- Oznaka 13: Naziv kolegija
- Oznaka 14: ID tečaja
- Oznaka 15: Datum početka upisa
- Oznaka 16: Datum završetka upisa
- Oznaka 17: Trajanje tečaja
- Oznaka 18: odjela
Povezano: 4 pogreške koje treba izbjegavati pri programiranju Excel makronaredbi s VBA
Dizajniranje okvira s podacima o plaćanju
Umetnite novi okvir; dodajte novu oznaku i preimenujte je u "Želite li ažurirati podatke o plaćanju?" Umetnite dva gumbi s opcijama; preimenovati ih Da i Ne.
Slično tome, dodajte novi okvir koji sadrži dvije dodatne oznake i dva kombinirana okvira. Preimenujte oznake na sljedeći način:
- Oznaka 19: Primljena uplata
- Oznaka 20: Nacin placanja
Dizajniranje navigacijskog okna
U završnom okviru dodajte tri gumba iz okvira s alatima koji će sadržavati kod za izvršavanje obrazaca.
Preimenujte gumbe na sljedeći način:
- Gumb 1: Spremi detalje
- Gumb 2: Jasni obrazac
- Gumb 3: Izlaz
Pisanje koda automatiziranog obrasca: gumb za spremanje pojedinosti
Dvaput kliknite na Spremi detalje dugme. U modul koji slijedi unesite sljedeći kod:
Privatna podnaredbaButton2_Klik()
'deklarirati varijable koje se koriste u kodovima
Dim sht Kao radni list, sht1 Kao radni list, lastrow Dokle god'Dodajte provjere kako biste provjerili unose li se vrijednosti znakova u numerička polja.
Ako je VBA.IsNumeric (txtApplicationNo. Value) = False onda
MsgBox "U aplikacijskom broju prihvaćaju se samo numeričke vrijednosti", vbCritical
Izlaz pod
Završi akoAko je VBA.IsNumeric (txtStudentID.Value) = False Onda
MsgBox "U Student ID-ju se prihvaćaju samo numeričke vrijednosti", vbCritical
Izlaz pod
Završi akoAko je VBA.IsNumeric (txtAge. Vrijednost) = False Tada
MsgBox "U dobi se prihvaćaju samo numeričke vrijednosti", vbKritično
Izlaz pod
Završi akoAko je VBA.IsNumeric (txtPhone. Vrijednost) = False Tada
MsgBox "U telefonskom broju prihvaćaju se samo numeričke vrijednosti", vbKritično
Izlaz pod
Završi akoAko je VBA.IsNumeric (Me.txtCourseID.Value) = False onda
MsgBox "U ID-u tečaja prihvaćaju se samo numeričke vrijednosti", vbCritical
Izlaz pod
Završi ako'povežite polja tekstualnog okvira s temeljnim listovima kako biste stvorili pokretnu bazu podataka
Postavite sht = Ova radna knjiga. Tablice ("Učenička baza podataka")'izračunaj zadnji popunjeni red u oba lista
posljednji = sht. Raspon ("a" i redovi. Count).Kraj (xlUp).Red +1
'zalijepite vrijednosti svakog okvira za tekst u odgovarajuće ćelije lista
Sa sht
.Raspon("a" & lastrow).Vrijednost = txtApplicationNo. Vrijednost
.Range("b" & lastrow).Value = txtStudentID.Value
.Raspon("c" & lastrow).Vrijednost = txtName. Vrijednost
.Raspon("d" & lastrow).Vrijednost = txtAge. Vrijednost
.Range("e" & lastrow).Vrijednost = txtDOB.Value
.Raspon("g" & lastrow).Vrijednost = txtAddress. Vrijednost
.Raspon("h" & lastrow).Vrijednost = txtPhone. Vrijednost
.Raspon("i" & lastrow).Vrijednost = txtCity. Vrijednost
.Raspon("j" & lastrow).Vrijednost = txtCountry. Vrijednost
.Raspon("k" & lastrow).Vrijednost = txtZip. Vrijednost
.Raspon("l" & lastrow).Vrijednost = txtNacionalnost. Vrijednost
.Raspon("m" & lastrow).Vrijednost = txtCourse. Vrijednost
.Range("n" & lastrow).Value = txtCourseID.Value
.Raspon("o" & lastrow).Vrijednost = txtenrollmentstart. Vrijednost
.Raspon("p" & lastrow).Vrijednost = txtenrollmentend. Vrijednost
.Raspon("q" & lastrow).Vrijednost = txtcourseduration. Vrijednost
.Raspon("r" & lastrow).Vrijednost = txtDept. VrijednostZavrši s
sht. Aktivirati'odredite spol prema unosu korisnika
Ako optMale. Vrijednost = True Onda sht. Raspon("g" & lastrow).Vrijednost = "Muški"
Ako optŽena. Vrijednost = True Onda sht. Raspon("g" & lastrow).Vrijednost = "Ženski"
'Prikaži okvir s porukom, u slučaju da korisnik odabere radio gumb DaAko optDa. Vrijednost = True Tada
MsgBox "Molimo odaberite detalje plaćanja u nastavku"
Drugo:
Izlaz podZavrši ako
Kraj Sub
Ako niste sigurni koji dijelovi ili bilo koji od kodova znače, ne brinite. To ćemo detaljno objasniti u sljedećem odjeljku.
Objašnjenje koda automatiziranog obrasca
Tekstualni okviri sadržavat će mješavinu tekstualnih i brojčanih vrijednosti, stoga je bitno ograničiti unos korisnika. The Broj prijave, studentska iskaznica, Dob, Telefon, ID tečaja, i Trajanje tečaja treba sadržavati samo brojeve, dok će ostatak sadržavati tekst.
Korištenje an AKO Izjava, kod pokreće skočne prozore s pogreškama ako korisnik unese znak ili tekstualnu vrijednost u bilo koje od brojčanih polja.
Budući da su provjere pogreške na mjestu, morate povezati tekstualne okvire sa ćelijama lista.
The posljednji varijable će izračunati zadnji popunjeni redak i pohraniti vrijednosti u njih za dinamičku upotrebu.
Konačno, vrijednosti se lijepe iz tekstualnih okvira u povezani Excel list.
Brisanje kodova obrasca i gumba za izlaz
U čisto gumb, trebate napisati kod kako biste izbrisali postojeće vrijednosti iz korisničkog obrasca. To se može učiniti na sljedeći način:
Sa mnom
.txtApplicationNo Vrijednost = ""
.txtStudentID.Value = ""
..txtName. Vrijednost = ""
.txtAge. Vrijednost = ""
.txtAddress. Vrijednost = ""
.txtPhone. Vrijednost = ""
.txtCity. Vrijednost = ""
.txtCountry. Vrijednost = ""
.txtDOB.Value = ""
.txtZip. Vrijednost = ""
.txtNacionalnost. Vrijednost = ""
.txtCourse. Vrijednost = ""
.txtCourseID.Value = ""
.txtenrollmentstart. Vrijednost = ""
.txtenrollmentend. Vrijednost = ""
.txtcourseduration. Vrijednost = ""
.txtDept Vrijednost = ""
.cmbPaymentMode. Vrijednost = ""
.cmbPlaćanje. Vrijednost = ""
.optŽenski. Vrijednost = Netočno
.optMale. Vrijednost = Netočno
.optDa. Vrijednost = Netočno
.optNo. Vrijednost = Netočno
Završi s
U Izlaz gumb, unesite sljedeći kod da zatvorite korisnički obrazac.
Privatni podnaredbeni gumb5_Klik()
Iskrcaj me
Kraj Sub
Kao posljednji korak, trebate unijeti nekoliko konačnih dijelova koda kako biste stvorili padajuće vrijednosti za kombinirane okvire (unutar okvira plaćanja).
Privatni podkorisnički obrazac_Aktiviraj()
Uz cmb Plaćanje
.Čisto
.Dodaj Predmet ""
.AddItem "Da"
.AddItem "Ne"
Završi s
Uz cmbPaymentMode
.Čisto
.Dodaj Predmet ""
.AddItem "Gotovina"
.AddItem "Card"
.AddItem "Check"
Završi s
Kraj Sub
VBA automatizacija čini rad lakšim
VBA je višestruki jezik koji služi mnogim svrhama. Korisnički obrasci samo su jedan aspekt unutar VBA - postoje mnoge druge namjene kao što su konsolidacija radnih knjiga i radnih listova, spajanje više listova Excela i druge zgodne upotrebe automatizacije.
Bez obzira na cilj automatizacije, VBA je na visini zadatka. Ako nastavite učiti i vježbati, nema aspekta svog radnog tijeka koji ne možete poboljšati.
Spajanje podataka s više od jednog Excel lista u istoj radnoj knjizi prava je gnjavaža... dok ne koristite VBA makronaredbe.
Pročitajte dalje
- Programiranje
- Produktivnost
- Visual Basic programiranje
- Microsoft Excel
Gaurav Siyal ima dvije godine iskustva pisanja, pisanja za niz tvrtki za digitalni marketing i dokumenata o životnom ciklusu softvera.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu