Otvorite Excel i VBE (Visual Basic Editor). Osim ako je promijenjen, prozor VBE sadrži Istraživač projekta prozor i Svojstva prozor (njima se može pristupiti iz Pogled Jelovnik).
Istraživač projekta: Radi kao upravitelj datoteka. Pomaže vam u kretanju po kodu u vašoj radnoj knjizi.
Prozor svojstava: Prikazuje svojstva trenutno aktivnog objekta (npr. List 1) trenutne radne knjige (npr.Knjiga1).
U ovom ćemo članku naučiti kako je jednostavno snimanje makronaredbi u Excelu.
Vježba 1: Snimanje makronaredbi.
Ova vježba pokazuje što se događa kada se makro snimi i pokazuje razliku između bilježenja apsolutnih i relativnih referenci.
1. Na praznom radnom listu u novoj radnoj knjizi odaberite ćeliju C10
2. Pokrenite Makro snimač s mogućnošću spremanja makronaredbi Ova Radna sveska. U ovom trenutku VBE stvara novu Moduli mapu. Sasvim je sigurno otići i pogledati - vaše se radnje neće zabilježiti. Kliknite na [+] pored mape i provjerite ima li VBE modul u mapi i nazvao ga Modul 1. Dvaput kliknite ikonu modula da biste otvorili prozor s kodom. Vratite se na Excel.
3. Uvjerite se da je Relativna referenca gumb na Zaustavi snimanje alatna traka se NE utiskuje.
4. Odaberite ćeliju B5 i zaustavite snimač.
5. Prebacite se na VBE i pogledajte kod:
Raspon ("B5"). Odaberite
6. Sada snimite još jedan makro, na potpuno isti način, ali ovaj put s Relativna referenca pritisnuto dugme.
7. Prebacite se na VBE i pogledajte kod:
ActiveCell.Offset (-5, -1) .Range ("A1"). Odaberite
8. Sada snimite drugi makro, ali umjesto odabira ćelije B5, odaberite blok ćelija 3x3 počevši od B5 (odaberite ćelije B5: F7)
9. Prebacite se na VBE i pogledajte kod:
ActiveCell.Offset (-5, -1) .Range ("A1: B3"). Odaberite
10. Reproducirajte makronaredbe, nakon što ste prvo odabrali ćeliju različitu od C10 (za Macro2 i Macro3 početna ćelija mora biti u retku 6 ili ispod - pogledajte korak 11 ispod)
Makro1 - uvijek pomiče odabir na B5
Makro2 - pomiče odabir u ćeliju 5 redova prema gore i 1 stupac lijevo od odabrane ćelije.
Makro3 - uvijek odabire blok od šest ćelija koji započinje 5 redaka gore i 1 stupac lijevo od odabrane ćelije.
11. Pokrenite Macro2, ali prisilite pogrešku odabirom ćelije u retku 5 ili gore. Makronaredba pokušava odabrati nepostojeću ćeliju jer joj kôd govori da odabere ćeliju 5 redaka iznad početne točke, a to je s vrha lista. Pritisnite Otklanjanje pogrešaka da se prebaci na dio makronaredbe koji je uzrokovao problem.
NAPOMENA: Kada je VBE u načinu otklanjanja pogrešaka, kôd koji je uzrokovao problem označen je žutom bojom. Prije nastavka morate "resetirati" makronaredbu. Kliknite na Poništi gumb na VBE alatnoj traci ili idite na Pokreni> Poništi. Istaknuće žute boje nestaje i VBE izlazi iz načina otklanjanja pogrešaka.
12. Važno je pokušati predvidjeti ovakvu pogrešku korisnika. Najjednostavniji način je promijeniti kôd tako da jednostavno zanemaruje pogreške i prijeći na sljedeći zadatak. Učinite to dodavanjem retka …
Uključeno Slijedi nastavak greške
… neposredno iznad prvog retka makronaredbe (ispod retka Podmakro1 ()
13. Trči Makro2 kao i prije, počevši previsoko na listu. Ovaj put redak koji ste unijeli govori Excelu da zanemari redak koda koji ne može izvršiti. Nema poruke o pogrešci i makro izlazi nakon što je učinio sve što je mogao. Ovu metodu postupanja s pogreškama koristite oprezno. Ovo je vrlo jednostavan makro. Složeniji makronaredba vjerojatno ne bi funkcionirao prema očekivanjima ako se pogreške jednostavno zanemare. Također, korisnik nema pojma da je nešto pošlo po zlu.
14. Izmijenite kod Makro2 kako bi se uključio sofisticiraniji ručnik pogrešaka:
Podmakro 2 ()
Uključeno Greška Idi na ErrorHandler
ActiveCell.Offset (-5, -1) .Range ("A1"). Odaberite
Izlaz iz podv
ErrorHandler:
MsgBox "Morate početi ispod reda 5"
Kraj podm
15. Ovaj put korisniku se prikazuje dijaloški okvir kada nešto pođe po zlu. Ako nema pogreške, redak Exit Sub uzrokuje završetak makronaredbe nakon što je obavio svoj posao - u protivnom bi korisnik vidio poruku čak i da nema pogreške.
Poboljšanje snimljenih makronaredbi
Dobar način da naučite osnove VBA je snimiti makronaredbu i vidjeti kako Excel piše vlastiti kod. Često, međutim, snimljene makronaredbe sadrže mnogo više koda nego što je potrebno. Sljedeće vježbe pokazuju kako možete poboljšati i pojednostaviti kôd koji je proizveo snimljeni makro.
Vježba 2: Poboljšanje snimljenih makronaredbi
Ova vježba pokazuje da se prilikom snimanja makronaredbi često generira više koda nego što je potrebno. Pokazuje upotrebu naredbe With za preciziranje koda.
1. Odaberite bilo koju ćeliju ili blok ćelija.
2. Pokrenite makro rekorder i pozovite makro FormatCells. Postavka Relativne reference neće biti relevantna.
3. Idite na Oblikovanje> Ćelije> Font i izabrati Times New Roman i Crvena.
Ići Uzorci i izabrati Žuta boja.
Ići Poravnanje i izabrati Vodoravno, u sredini
Ići Broj i izabrati Valuta.
4. Pritisnite u redu i zaustavite snimač.
5. Kliknite na Poništi gumb (ili Ctrl+Z) da biste poništili promjene na radnom listu.
6. Odaberite blok ćelija i pokrenite FormatCells makronaredba. Imajte na umu da se to ne može poništiti! Upišite ćelije da biste provjerili rezultat oblikovanja.
7. Pogledajte kod:
PodformatSelection ()
Selection.NumberFormat = "$#, ## 0.00"
S odabirom
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = Netačno
.Orijentacija = 0
.ShrinkToFit = Netačno
.MergeCells = Netačno
Završi s
S odabirom.Fonta
.Name = "Times New Roman"
.FontStyle = "Redovito"
.Veličina = 10
.Strik = Netačno
.Superscript = Netačno
.Podpis = Netočno
.OutlineFont = Netačno
.Sjena = Netačno
.Podcrtaj = xlUnderlineStyleNone
.Indeks boje = 3
Završi s
With Selection.Interijer
.Indeks boje = 6
.Uzorak = xlTvrdo
.Indeks boje uzorka = xlAutomatski
Završi s
Kraj podm
Promijenite font u Times New Roman
Promijenite boju fonta u Crvena
Promijenite boju ispune u Žuta boja
Kliknite na Centar dugme
Kliknite na Valuta dugme
13. Pogledajte kod. I dalje dobivate mnogo stvari koje ne želite nužno. Excel bilježi sve zadano postavkama. Većina njih je sigurno izbrisati.
14. Eksperimentirajte s uređivanjem izravno u kôd da biste promijenili boje, font, format broja itd.
Vježba 3: Gledajte kako se snima makro
Ova vježba pokazuje da možete naučiti gledajući izradu makroa tijekom snimanja. To je također primjer kada iskaz With ponekad nije prikladan.
1. Otvorite datoteku VBA01.xls.
Iako je ovaj radni list vizualno u redu i korisnik ga može razumjeti, prisutnost praznih ćelija može uzrokovati probleme. Pokušajte filtrirati podatke i vidjeti što će se dogoditi. Ići Podaci> Filter> Autofilter i filtrirajte prema regiji ili mjesecu. Jasno je da Excel ne donosi iste pretpostavke kao što to čini korisnik. Prazne ćelije treba popuniti.
2. Položite Excel i VBE prozore (okomito) tako da budu jedan pored drugog.
3. Odaberite bilo koju ćeliju unutar podataka. Ako je prazna ćelija, mora biti uz ćeliju koja sadrži podatke.
4. Pokrenite makro rekorder i pozovite makro FillEmptyCells. Postavljeno za snimanje Relativne reference.
5. U prozoru VBE pronađite i dvaput kliknite modul (Modul1) za trenutnu radnu knjigu da biste otvorili okno za uređivanje, a zatim isključite prozor Project Explorer i prozor Svojstva (samo da biste napravili mjesta).
6. Novi makro snimite na sljedeći način:
Korak 1. Ctrl+* (za odabir trenutne regije)
Korak 2. Uredi> Idi na> Posebno> Praznine> U redu (za odabir svih praznih ćelija u trenutnoj regiji)
Korak 3. Upišite = [Strelica gore] zatim pritisnite Ctrl+Enter (za unos tipkanja u sve odabrane ćelije)
Korak 4. Ctrl+* (za ponovni odabir trenutne regije)
Korak 5. Ctrl+C (za kopiranje odabira - svaka će metoda poslužiti)
Korak 6. Uredi> Posebno zalijepi> Vrijednosti> U redu (za lijepljenje podataka natrag na isto mjesto, ali odbacivanje formula)
Korak 7. Esc (za izlazak iz načina kopiranja)
Korak 8. Zaustavite snimanje.
7. Pogledajte kod:
Sub FillEmptyCells ()
Odabir.Tekuća regija.Odaberi
Selection.SpecialCells (xlCellTypeBlanks) .Odaberite
Izbor.FormulaR1C1 = "= R [-1] C"
Odabir.Tekuća regija.Odaberi
Odabir.Kopiraj
Selection.PasteSpecial Paste: = xlValues, Operacija: = xlNone, SkipBlanks: = _
Netačno, Transponiraj: = Netačno
Application.CutCopyMode = Netačno
Kraj podm
8. Obratite pozornost na to da razmak i donja crta "_" označavaju razdvajanje jednog retka koda na novi redak. Bez ovoga Excel bi kôd tretirao kao dvije zasebne izjave.
9. Budući da je ovaj makro snimljen s dobro osmišljenim naredbama, malo je nepotrebnog koda. U Posebno zalijepi sve iza riječi "xlValues" može se izbrisati.
10. Isprobajte makronaredbu. Zatim upotrijebite alat AutoFilter i zabilježite razliku.