Åbn Excel og VBE (Visual Basic Editor). Medmindre det er blevet ændret, indeholder VBE -vinduet Projekt Explorer vindue og Ejendomme vindue (disse kan tilgås fra Udsigt menu).
Project Explorer: Fungerer som en filhåndtering. Hjælper dig med at navigere rundt i koden i din projektmappe.
Egenskaber vindue: Viser egenskaberne for det aktuelt aktive objekt (f.eks. Ark 1) i den aktuelle projektmappe (f.eks.Bog 1).
I denne artikel lærer vi, hvor let makrooptagelse i Excel er.
Øvelse 1: Optagelse af en makro.
Denne øvelse viser, hvad der sker, når en makro registreres og viser forskellen mellem at optage absolutte og relative referencer.
1. Vælg et celle på et tomt regneark i en ny projektmappe C10
2. Start Makrooptager med mulighed for at gemme makro i Denne arbejdsbog. På dette tidspunkt opretter VBE en ny Moduler folder. Det er ganske sikkert at gå og se på det - dine handlinger bliver ikke registreret. Klik på [+] ved siden af mappen og se, at VBE har placeret et modul i mappen og navngivet den Modul 1. Dobbeltklik på modulikonet for at åbne dets kodevindue. Skift tilbage til Excel.
3. Sørg for, at Relativ reference knappen på Stop optagelse værktøjslinjen er IKKE trykket ind.
4. Vælg celle B5 og stop optageren.
5. Skift til VBE og se på koden:
Område ("B5"). Vælg
6. Optag nu en anden makro, nøjagtig på samme måde, men denne gang med Relativ reference knappen trykket ind.
7. Skift til VBE og se på koden:
ActiveCell.Offset (-5, -1) .Range ("A1"). Vælg
8. Optag nu en anden makro, men i stedet for at vælge celle B5, vælg en blok af celler 3x3, der starter ved B5 (vælg celler B5: F7)
9. Skift til VBE og se på koden:
ActiveCell.Offset (-5, -1) .Range ("A1: B3"). Vælg
10. Afspil makroerne efter først at have valgt en anden celle end C10 (for Macro2 og Macro3 skal startcellen være i række 6 eller derunder - se trin 11 nedenfor)
Makro1 - flytter altid markeringen til B5
Makro2 - flytter markeringen til en celle 5 rækker op og 1 kolonne til venstre for den markerede celle.
Makro3 - vælger altid en blok med seks celler, der starter 5 rækker op og 1 kolonne til venstre for den valgte celle.
11. Kør Macro2, men tving en fejl ved at markere en celle i række 5 eller derover. Makroen forsøger at vælge en ikke-eksisterende celle, fordi dens kode fortæller den at vælge en celle 5 rækker over startpunktet, og det er ude af toppen af arket. Trykke Fejlfinde skal tages til den del af makroen, der forårsagede problemet.
BEMÆRK: Når VBE er i fejlfindingstilstand, fremhæves den kodelinje, der forårsagede problemet, med gult. Du skal "nulstille" makroen, før du kan fortsætte. Klik på Nulstil knappen på VBE -værktøjslinjen eller gå til Kør> Nulstil. Den gule markering forsvinder, og VBE kommer ud af fejlfindingstilstand.
12. Det er vigtigt at prøve at forudse brugerfejl som denne. Den enkleste måde er at ændre koden til simpelthen at ignorere fejl og gå videre til den næste opgave. Gør dette ved at tilføje linjen …
Ved fejl Genoptag næste
… umiddelbart over den første linje i makroen (under linjen Undermakro1 ()
13. Kør Makro2 som før, begyndte for højt på arket. Denne gang fortæller den linje, du skrev, Excel at ignorere den kodelinje, som den ikke kan udføre. Der er ingen fejlmeddelelse, og makroen forlader efter at have gjort alt, hvad den kan. Brug denne metode til at håndtere fejl med forsigtighed. Dette er en meget simpel makro. En mere kompleks makro ville sandsynligvis ikke fungere som forventet, hvis fejl simpelthen blev ignoreret. Brugeren aner heller ikke, at noget er gået galt.
14. Rediger koden for Makro2 at inkludere en mere sofistikeret fejlhåndterer således:
Undermakro2 ()
Ved fejl GoTo ErrorHandler
ActiveCell.Offset (-5, -1) .Range ("A1"). Vælg
Afslut Sub
ErrorHandler:
MsgBox "Du skal starte under række 5"
Afslut Sub
15. Denne gang får brugeren vist en dialogboks, når noget går galt. Hvis der ikke er nogen fejl, får linjen Exit Sub makroen til at afslutte, efter at den har udført sit job - ellers ville brugeren se meddelelsen, selvom der ikke var nogen fejl.
Forbedring af optagede makroer
Den gode måde at lære det grundlæggende i VBA på er at optage en makro og se, hvordan Excel skriver sin egen kode. Ofte indeholder optagede makroer imidlertid meget mere kode end nødvendigt. De følgende øvelser viser, hvordan du kan forbedre og effektivisere kode, der er blevet produceret af en registreret makro.
Øvelse 2: Forbedring på optagede makroer
Denne øvelse viser, at når der registreres makroer, genereres der ofte mere kode end nødvendigt. Det viser brugen af With -sætningen til at præcisere koden.
1. Vælg en celle eller blok af celler.
2. Start makrooptageren, og kald makroen FormatCells. Indstillingen Relative References vil ikke være relevant.
3. Gå til Format> Celler> Skrifttype og vælg Times New Roman og Rød.
Gå til Mønstre og vælg Gul.
Gå til Justering og vælg Vandret, i midten
Gå til Nummer og vælg betalingsmiddel.
4. Klik på Okay og stop optageren.
5. Klik på Fortryd knappen (eller Ctrl+Z) for at fortryde dine ændringer i regnearket.
6. Vælg en blok af celler, og kør FormatCeller makro. Bemærk, at det ikke kan fortrydes! Indtast cellerne for at kontrollere resultatet af formateringen.
7. Se på koden:
Sub FormatSelection ()
Selection.NumberFormat = "$#, ## 0.00"
Med markering
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = Falsk
.Orientation = 0
.ShrinkToFit = Falsk
.MergeCells = Falsk
Afslut med
Med markering. Skrifttype
.Name = "Times New Roman"
.FontStyle = "Regular"
.Størrelse = 10
.Strikethrough = Falsk
.Superscript = Falsk
.Subscript = Falsk
.OutlineFont = Falsk
.Skygge = Falsk
.Underline = xlUnderlineStyleNone
.ColorIndex = 3
Afslut med
Med udvalg. Interiør
.ColorIndex = 6
.Mønster = xlSolid
.PatternColorIndex = xlAutomatisk
Afslut med
Afslut Sub
Skift skrifttype til Times New Roman
Skift skrifttypefarve til Rød
Skift fyldfarve til Gul
Klik på Centrum knap
Klik på betalingsmiddel knap
13. Se på koden. Du får stadig masser af ting, som du ikke nødvendigvis ønsker. Excel registrerer alle Standard indstillinger. De fleste af disse er sikre at slette.
14. Eksperimenter med at redigere direkte i koden for at ændre farver, skrifttype, talformat osv.
Øvelse 3: Se en makro blive optaget
Denne øvelse viser, at du kan lære ved at se makroopbygningen, mens den bliver optaget. Det er også et eksempel på, når undertiden With -sætningen ikke er passende.
1. Åbn filen VBA01.xls.
Selvom dette regneark er visuelt OK og kan forstås af brugeren, kan tilstedeværelsen af tomme celler forårsage problemer. Prøv at filtrere dataene og se, hvad der sker. Gå til Data> Filter> Autofilter og filtrer efter region eller måned. Det er klart, at Excel ikke gør de samme antagelser, som brugeren gør. De tomme celler skal udfyldes.
2. Fliser Excel- og VBE-vinduerne (lodret), så de er side om side.
3. Vælg en hvilken som helst celle i dataene. Hvis det er en tom celle, skal den være tilstødende til en celle, der indeholder data.
4. Start makrooptageren, og ring til makroen FillEmptyCells. Indstil til optagelse Relative referencer.
5. Find og dobbeltklik på modulet (Modul1) i den aktuelle projektmappe i VBE-vinduet for at åbne redigeringsruden, og sluk derefter vinduet Project Explorer og vinduet Egenskaber (kun for at få plads).
6. Optag den nye makro som følger:
Trin 1. Ctrl+* (for at vælge den aktuelle region)
Trin 2. Rediger> Gå til> Special> Emner> OK (for at markere alle de tomme celler i den aktuelle region)
Trin 3. Skriv = [Pil op] tryk derefter på Ctrl+Enter (for at placere din indtastning i alle de valgte celler)
Trin 4. Ctrl+* (for at vælge den aktuelle region igen)
Trin 5. Ctrl+C (for at kopiere markeringen - enhver metode gør)
Trin 6. Rediger> Indsæt special> Værdier> OK (for at indsætte dataene tilbage på det samme sted, men kasser formlerne)
Trin 7. Esc (for at komme ud af kopifunktionen)
Trin 8. Stop optagelse.
7. Se på koden:
Sub FillEmptyCells ()
Selection.CurrentRegion.Select
Selection.SpecialCells (xlCellTypeBlanks) .Vælg
Selection.FormulaR1C1 = "= R [-1] C"
Selection.CurrentRegion.Select
Udvælgelse. Kopi
Selection.PasteSpecial Paste: = xlValues, Operation: = xlNone, SkipBlanks: = _
Falsk, Transponer: = Falsk
Application.CutCopyMode = Falsk
Afslut Sub
8. Bemærk brugen af mellemrummet og understreget “_” til at betegne opdelingen af en enkelt kodelinje til en ny linje. Uden dette ville Excel behandle koden som to separate udsagn.
9. Fordi denne makro er blevet optaget med gennemtænkte kommandoer, er der lidt unødvendig kode. I Indsæt special alt efter ordet "xlValues" kan slettes.
10. Prøv makroen. Brug derefter værktøjet AutoFilter og bemærk forskellen.