Odprite Excel in VBE (urejevalnik Visual Basic). Če ni bilo spremenjeno, okno VBE vsebuje Raziskovalec projektov okno in Lastnosti okno (do njih lahko dostopate iz Pogled meni).
Raziskovalec projektov: Deluje kot upravitelj datotek. Pomaga pri krmarjenju po kodi v delovnem zvezku.
Okno lastnosti: Prikaže lastnosti trenutno aktivnega predmeta (npr. List1) trenutnega delovnega zvezka (npr.Knjiga 1).
V tem članku bomo izvedeli, kako enostavno je snemanje makrov v Excelu.
Vaja 1: Snemanje makra.
Ta vaja prikazuje, kaj se zgodi, ko se zabeleži makro, in prikazuje razliko med beleženjem absolutnih in relativnih referenc.
1. Na praznem delovnem listu v novem delovnem zvezku izberite celico C10
2. Zaženite Makro snemalnik z možnostjo shranjevanja makra v Ta delovni zvezek. Na tej točki VBE ustvari novo Moduli mapo. Povsem varno je iti pogledat - vaša dejanja ne bodo zabeležena. Kliknite na [+] poleg mape in preverite, ali ima VBE v mapo modul in ga poimenoval Modul 1. Dvokliknite ikono modula, da odprete okno njegove kode. Preklopite nazaj na Excel.
3. Prepričajte se, da je Relativna referenca gumb na Ustavi snemanje orodna vrstica NI pritisnjena.
4. Izberite celico B5 in ustavite snemalnik.
5. Preklopite na VBE in poglejte kodo:
Razpon ("B5"). Izberite
6. Zdaj zapišite še en makro, popolnoma na enak način, vendar tokrat z datoteko Relativna referenca pritisnjen gumb.
7. Preklopite na VBE in poglejte kodo:
ActiveCell.Offset (-5, -1) .Range ("A1"). Izberite
8. Zdaj zapišite še en makro, namesto da izberete celico B5, izberite blok celic 3x3, ki se začne pri B5 (izberite celice B5: F7)
9. Preklopite na VBE in poglejte kodo:
ActiveCell.Offset (-5, -1) .Range ("A1: B3"). Izberite
10. Predvajajte makre, potem ko ste najprej izbrali celico, ki ni C10 (za Macro2 in Macro3 mora biti začetna celica v vrstici 6 ali manj - glejte korak 11 spodaj)
Makro1 - vedno premakne izbiro na B5
Makro2 - premakne izbor v celico za 5 vrstic navzgor in 1 stolpec levo od izbrane celice.
Makro3 - vedno izbere blok šestih celic, ki se začne 5 vrstic navzgor in 1 stolpec levo od izbrane celice.
11. Zaženite Macro2, vendar izsilite napako, tako da izberete celico v vrstici 5 ali več. Makro poskuša izbrati neobstoječo celico, ker mu koda pove, naj izbere celico 5 vrstic nad začetno točko, kar je na vrhu lista. Pritisnite Odpravljanje napak preusmeriti na del makra, ki je povzročil težavo.
OPOMBA: Ko je VBE v načinu za odpravljanje napak, je vrstica kode, ki je povzročila težavo, označena rumeno. Pred nadaljevanjem morate "ponastaviti" makro. Kliknite na Ponastaviti v orodni vrstici VBE ali pojdite na Zaženi> Ponastavi. Rumena oznaka izgine in VBE izstopi iz načina za odpravljanje napak.
12. Pomembno je, da poskusite predvideti takšno napako uporabnika. Najpreprostejši način je, da kodo spremenite tako, da preprosto prezrete napake in se premaknete na naslednjo nalogo. To naredite tako, da dodate vrstico …
On Napaka Nadaljuj Naprej
… Tik nad prvo vrstico makra (pod vrstico Podmakro1 ()
13. Teči Makro2 kot prej, začetek previsoko na listu. Tokrat vnesena vrstica pove Excelu, naj prezre vrstico kode, ki je ne more izvesti. Ni sporočila o napaki in makro zapusti vse, kar je mogoče. Ta način ravnanja z napakami uporabljajte previdno. To je zelo preprost makro. Kompleksnejši makro verjetno ne bi deloval po pričakovanjih, če bi napake preprosto prezrli. Prav tako uporabnik ne ve, da je šlo kaj narobe.
14. Spremenite kodo Makro2 vključiti bolj izpopolnjen obravnavalec napak:
Podmakro 2 ()
Na napako Pojdi na ErrorHandler
ActiveCell.Offset (-5, -1) .Range ("A1"). Izberite
Zapri pod
ErrorHandler:
MsgBox "Začeti morate pod 5. vrstico"
End Sub
15. Tokrat se uporabniku prikaže pogovorno okno, ko gre kaj narobe. Če ni napake, vrstica Exit Sub povzroči, da se makro konča po opravljenem delu - sicer bi uporabnik videl sporočilo, tudi če ne bi prišlo do napake.
Izboljšanje posnetih makrov
Dober način, da se naučite osnov VBA, je, da posnamete makro in si ogledate, kako Excel zapiše svojo kodo. Pogosto pa posneti makri vsebujejo veliko več kode, kot je potrebno. Naslednje vaje prikazujejo, kako lahko izboljšate in poenostavite kodo, ki jo je ustvaril posneti makro.
2. vaja: Izboljšanje posnetih makrov
Ta vaja kaže, da se pri snemanju makrov pogosto ustvari več kode, kot je potrebno. Prikazuje uporabo stavka With za natančno določanje kode.
1. Izberite katero koli celico ali blok celic.
2. Zaženite snemalnik makrov in pokličite makro FormatCells. Nastavitev Relativni sklici ne bo pomembna.
3. Pojdite na Oblika> Celice> Pisava in izberite Times New Roman in rdeča.
Pojdi do Vzorci in izberite Rumena.
Pojdi do Poravnava in izberite Vodoravno, na sredini
Pojdi do Številka in izberite Valuta.
4. Kliknite v redu in ustavite snemalnik.
5. Kliknite na Razveljavi gumb (ali Ctrl+Z), če želite razveljaviti spremembe na delovnem listu.
6. Izberite blok celic in zaženite datoteko FormatCells makro. Upoštevajte, da tega ni mogoče razveljaviti! Vnesite celice, da preverite rezultat oblikovanja.
7. Poglejte kodo:
PodoblikSelection ()
Selection.NumberFormat = "$#, ## 0.00"
S selekcijo
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = Napačno
.Orijentacija = 0
.ShrinkToFit = Napačno
.MergeCells = Napačno
Končaj s
S Selection.Font
.Name = "Times New Roman"
.FontStyle = "Redno"
.Veličina = 10
.Striketh = False
.Superscript = Napačno
.Subscript = False
.OutlineFont = Napačno
.Senca = Napačno
.Underline = xlUnderlineStyleNone
.Indeks barve = 3
Končaj s
Z izbiro. Notranjost
.Indeks barve = 6
.Vzorec = xlTrdno
.PetternColorIndex = xlAutomatic
Končaj s
End Sub
Spremenite pisavo v Times New Roman
Barvo pisave spremenite v rdeča
Spremenite barvo polnila v Rumena
Kliknite na Center gumb
Kliknite na Valuta gumb
13. Oglejte si kodo. Še vedno dobite veliko stvari, ki si jih ne želite. Excel beleži vse privzeto nastavitve. Večino teh je varno izbrisati.
14. Poskusite z urejanjem neposredno v kodo, da spremenite barve, pisavo, obliko številk itd.
Vaja 3: Oglejte si posneti makro
Ta vaja kaže, da se lahko naučite, če opazujete gradnjo makra med snemanjem. Je tudi primer, ko stavek With včasih ni primeren.
1. Odprite datoteko VBA01.xls.
Čeprav je ta delovni list vizualno v redu in ga uporabnik lahko razume, lahko prisotnost praznih celic povzroči težave. Poskusite filtrirati podatke in poglejte, kaj se zgodi. Pojdi do Podatki> Filter> Samodejni filter in filtrirajte po regiji ali mesecu. Jasno je, da Excel ne daje enakih predpostavk kot uporabnik. Prazne celice je treba zapolniti.
2. Okna Excel in VBE položite (navpično) tako, da sta drug ob drugem.
3. Izberite poljubno celico znotraj podatkov. Če je prazna celica, mora biti v bližini celice s podatki.
4. Zaženite snemalnik makrov in pokličite makro FillEmptyCells. Nastavljeno za snemanje Relativne reference.
5. V oknu VBE poiščite in dvokliknite modul (Modul 1) za trenutni delovni zvezek, da odprete podokno za urejanje, nato izklopite okno Raziskovalec projektov in okno Lastnosti (samo za prostor).
6. Novi makro zabeležite na naslednji način:
Korak 1. Ctrl+* (za izbiro trenutne regije)
2. korak. Uredi> Pojdi na> Posebno> Praznine> V redu (za izbiro vseh praznih celic v trenutnem območju)
Korak 3. Vnesite = [UpArrow] nato pritisnite Ctrl+Enter (da vnesete tipkanje v vse izbrane celice)
4. korak. Ctrl+* (za ponovno izbiro trenutne regije)
5. korak. Ctrl+C (če želite kopirati izbiro - bo uporabna katera koli metoda)
6. korak. Uredi> Posebno lepljenje> Vrednosti> V redu (podatke prilepite nazaj na isto mesto, pri tem pa zavrzite formule)
7. korak. Esc (za izhod iz načina kopiranja)
Korak 8. Ustavite snemanje.
7. Poglejte kodo:
Sub FillEmptyCells ()
Selection.CurrentRegion.Select
Selection.SpecialCells (xlCellTypeBlanks) .Izberi
Izbor.FormulaR1C1 = "= R [-1] C"
Selection.CurrentRegion.Select
Izbor.Kopiraj
Selection.PasteSpecial Paste: = xlValues, Operacija: = xlNone, SkipBlanks: = _
False, Transpose: = False
Application.CutCopyMode = Napačno
End Sub
8. Upoštevajte uporabo presledka in podčrtaja »_« za označevanje razdelitve ene vrstice kode na novo vrstico. Brez tega bi Excel kodo obravnaval kot dve ločeni izjavi.
9. Ker je bil ta makro posnet z dobro premišljenimi ukazi, je malo nepotrebne kode. V Posebno lepljenje vse za besedo »xlValues« je mogoče izbrisati.
10. Preizkusite makro. Nato uporabite orodje AutoFilter in zabeležite razliko.