Hoe om 'n makro in Excel op te neem

  • Deel Dit
Michael Brown

Stap-vir-stap-tutoriaal vir beginners om 'n makro op te neem, te bekyk, te hardloop en te stoor. Jy sal ook 'n paar innerlike meganika leer van hoe makro's in Excel werk.

Makro's is 'n goeie manier om herhalende take in Excel te outomatiseer. As jy agterkom dat jy dieselfde dinge oor en oor doen, teken jou bewegings as 'n makro aan en ken 'n sleutelbordkortpad daaraan toe. En nou kan jy al die aangetekende aksies outomaties laat uitvoer, met 'n enkele toetsaanslag!

    Hoe om 'n makro in Excel op te neem

    Soos ander VBA-nutsgoed, Excel-makro's woon op die Ontwikkelaar -oortjie, wat by verstek versteek is. Dus, die eerste ding wat jy moet doen is om Ontwikkelaar-oortjie by jou Excel-lint te voeg.

    Om 'n makro in Excel op te neem, voer hierdie stappe uit:

    1. Op die Ontwikkelaar -oortjie, in die Kode -groep, klik die Teken makro op op.

      Alternatiewelik, klik die Teken op Makro -knoppie aan die linkerkant van die Status -balk:

      As jy verkies om met die sleutelbord eerder as met die muis te werk, druk die volgende sleutelvolgorde Alt , L , R (een-vir-een, nie al die sleutels op 'n slag nie).

    2. In die Rekord Makro dialoogkassie wat verskyn, stel die hoofparameters van jou makro op:
      • In die Makro naam boks, voer die naam vir jou makro in. Probeer om dit sinvol en beskrywend te maak, so later sal jy vinnig die makro in die lys kan vind.

        Inspaar jou baie tyd en senuwees wat jou leerkurwe gladder maak en makro's doeltreffender maak.

        Gebruik relatiewe verwysings vir makro-opname

        By verstek gebruik Excel absolute verwysende om 'n makro op te neem. Dit beteken jou VBA-kode sal altyd verwys na presies dieselfde selle wat jy gekies het, maak nie saak waar jy in die werkblad is wanneer jy die makro laat loop nie.

        Dit is egter moontlik om die verstekgedrag na te verander. relatiewe verwysing . In hierdie geval sal VBA nie seladresse hardkodeer nie, maar sal relatief tot die aktiewe (tans geselekteerde) sel werk.

        Om 'n makro met relatiewe verwysing op te neem, klik die Gebruik Relatiewe verwysings -knoppie op die Ontwikkelaar -oortjie. Om terug te keer na absolute verwysing, klik weer op die knoppie om dit af te skakel.

        As jy byvoorbeeld die opstel van 'n tabel met die verstek absolute verwysing opneem, sal jou makro altyd herskep die tabel op dieselfde plek (in hierdie geval, Opskrif in A1, Item1 in A2, Item2 in A3).

        Sub Absolute_Referencing() Range( "A1" ). Kies ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Kies ActiveCell.FormulaR1C1 = "Item1" Reeks( "A3"). Kies ActiveCell.FormulaR1C1 = "Item2" End Sub

        As jy dieselfde makro met relatiewe verwysing opneem, sal die tabel geskep word waar jy ook al die wyser plaas voordat die makro uitgevoer word ( Header in dieaktiewe sel, Item1 in die onderstaande sel, ensovoorts).

        Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Kies ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0). Reeks( "A1" ). Kies ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0). Reeks( "A1" ). Kies End Sub

        Notas:

        • Wanneer jy relatiewe verwysings gebruik, maak seker dat jy die aanvanklike sel kies voordat jy 'n makro begin opneem.
        • Relatiewe verwysing werk nie vir alles nie. Sommige Excel-kenmerke, bv. die omskakeling van 'n reeks na 'n tabel, vereis absolute verwysings.

        Kies reekse deur sleutelbordkortpaaie te gebruik

        Wanneer jy 'n sel of 'n reeks selle met die muis- of pyltjiesleutels kies, Excel skryf die seladresse. Gevolglik, wanneer jy 'n makro uitvoer, sal die aangetekende bewerkings presies op dieselfde selle uitgevoer word. As dit nie is wat jy wil hê nie, gebruik kortpaaie om selle en reekse te kies.

        Kom ons teken as voorbeeld 'n makro aan wat 'n spesifieke formaat (d-mmm-jj) vir die datums in die tabel hieronder stel:

        Hiervoor teken jy die volgende bewerkings op: druk Ctrl + 1 om die Format selle dialoog oop te maak > Datum > kies formaat > OK. As jou opname die keuse van die reeks met die muis- of pyltjiesleutels insluit, sal Excel die volgende VBA-kode produseer:

        Sub Date_Format() Range( "A2:B4" ). KiesSelection.NumberFormat = "d-mmm-yy" End Sub

        Om die bogenoemde makro te laat loop, sal elke keer die reeks A2:B4 kies. As jy nog 'n paar rye by jou tabel voeg, sal hulle nie deur die makro verwerk word nie.

        Kom ons kyk nou wat gebeur wanneer jy die tabel met 'n kortpad kies.

        Sit die wyser in die boonste linker sel van die teikenreeks (A2 in hierdie voorbeeld), begin opneem en druk Ctrl + Shift + End . As gevolg hiervan sal die eerste reël van die kode soos volg lyk:

        Range(Selectie, ActiveCell.SpecialCells(xlLastCell)). Kies

        Hierdie kode selekteer alle selle van die aktiewe sel na die laaste gebruikte sel, wat beteken dat alle nuwe data outomaties by die keuse ingesluit sal word.

        Alternatiewelik kan jy Ctrl + Shift + Arrows-kombinasies gebruik:

        • Ctrl + Shift + Regspyltjie om alle gebruikte selle na regs te kies, gevolg deur
        • Ctrl + Shift + Afpyltjie om alle gebruikte selle af te kies.

        Dit sal twee kodelyne in plaas van een genereer, maar die resultaat sal dieselfde wees - alle selle met data onder en regs van die aktiewe sel sal gekies word:

        Reeks (Seleksie, Seleksie. Einde ( xlNaRegs)). Kies Reeks (Seleksie, Seleksie. Einde (xlDown)). Kies

        Teken 'n makro op vir seleksie eerder as spesifieke selle

        Die bogenoemde metode (d.i. om alle gebruikte selle te kies wat met die aktiewe sel begin) werk uitstekend om dieselfde bewerkings op die hele tabel uit te voer. In sekeresituasies, maar jy wil dalk hê die makro moet 'n sekere reeks eerder as die hele tabel verwerk.

        Vir hierdie verskaf VBA die Seleksie -objek wat verwys na die tans geselekteerde sel(le) . Die meeste dinge wat met 'n reeks gedoen kan word, kan ook met seleksie gedoen word. Watter voordeel gee dit vir jou? In baie gevalle hoef jy glad nie iets te kies terwyl jy opneem nie - skryf net 'n makro vir die aktiewe sel. En dan, kies enige reeks wat jy wil hê, hardloop die makro, en dit sal die hele seleksie manipuleer.

        Byvoorbeeld, hierdie eenlyn-makro kan enige aantal geselekteerde selle as persentasies formateer:

        Sub Persent_Formaat () Selection.NumberFormat = "0.00%" End Sub

        Beplan noukeurig wat jy opneem

        Die Microsoft Excel Makro Recorder vang byna al jou aktiwiteit vas, insluitend die foute wat jy maak en regstel. Byvoorbeeld, as jy Ctrl + Z druk om iets ongedaan te maak, sal dit ook opgeneem word. Uiteindelik kan u met baie onnodige kode eindig. Om dit te vermy, wysig óf die kode in die VB Editor óf stop opname, vee 'n gebrekkige makro uit en begin opnuut opneem.

        Rugsteun of stoor werkboek voordat 'n makro uitgevoer word

        Die resultaat van Excel makro's kan nie ongedaan gemaak word nie. Dus, voor die eerste keer van 'n makro, maak dit sin om 'n kopie van die werkboek te skep of ten minste jou huidige werk te stoor om onverwagte veranderinge te voorkom. As die makro iets verkeerd doen,maak eenvoudig die werkboek toe sonder om te stoor.

        Hou aangetekende makros kort

        Wanneer jy 'n reeks verskillende take outomatiseer, kan jy in die versoeking kom om hulle almal in 'n enkele makro op te teken. Daar is twee hoofredes om dit nie te doen nie. Eerstens is dit moeilik om 'n lang makro glad sonder foute op te neem. Tweedens is groot makro's moeilik om te verstaan, te toets en te ontfout. Daarom is dit 'n goeie idee om 'n groot makro in verskeie dele te verdeel. Byvoorbeeld, wanneer jy 'n opsommingstabel uit verskeie bronne skep, kan jy een makro gebruik om inligting in te voer, 'n ander om data te konsolideer en 'n derde een om die tabel te formateer.

        Ek hoop hierdie tutoriaal het jou 'n bietjie insig gegee oor hoe om 'n makro in Excel op te neem. In elk geval, ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

        makroname, jy kan letters, syfers en onderstrepe gebruik; die eerste karakter moet 'n letter wees. Spasies word nie toegelaat nie, so jy moet óf 'n naam in enkelwoord hou wat elke deel met 'n hoofletter begin (bv. MyEerste Makro ) óf woorde met onderstrepings skei (bv. My_Eerste_Makro ).
      • Tik enige letter in die Kortpadsleutel -kassie om 'n sleutelbordkortpad aan die makro toe te wys (opsioneel).

        Beide hoofletters en kleinletters word toegelaat, maar jy sal wys wees om hoofletters sleutelkombinasies te gebruik ( Ctrl + Shift + letter ) omdat makrokortpaaie enige verstek Excel-kortpaaie oorheers terwyl die werkboek wat die makro bevat oop is. As jy byvoorbeeld Ctrl + S aan 'n makro toewys, sal jy die vermoë verloor om jou Excel-lêers met 'n kortpad te stoor. As u Ctrl + Shift + S toewys, sal die standaard stoorkortpad behou word.

      • Van die Stoor makro in aftreklys, kies waar jy jou makro wil stoor:
        • Persoonlike Makro Werkboek – stoor die makro in 'n spesiale werkboek genaamd Persoonlik.xlsb . Al die makro's wat in hierdie werkboek gestoor is, is beskikbaar wanneer jy Excel gebruik.
        • Hierdie werkboek (verstek) - die makro sal in die huidige werkboek gestoor word en sal beskikbaar wees wanneer jy die werkboek heropen of deel dit met ander gebruikers.
        • Nuwe werkboek – skep 'n nuwe werkboek en teken die makro in daardie werkboek aan.
      • In die Beskrywing boks, tik 'n kort beskrywing van wat jou makro doen (opsioneel).

        Alhoewel hierdie veld opsioneel is, sal ek aanbeveel dat jy altyd 'n kort beskrywing verskaf. Wanneer jy baie verskillende makro's skep, sal dit jou help om vinnig te verstaan ​​wat elke makro doen.

      • Klik OK om die makro te begin opneem.

    3. Voer die aksies uit wat jy wil hê om te outomatiseer (sien asseblief die opname-makro-voorbeeld).
    4. Wanneer jy klaar is, klik die Stop opname -knoppie op die Ontwikkelaar -oortjie:

      Of die analoge knoppie op die Status -balk:

    Voorbeeld van die opneem van 'n makro in Excel

    Om te sien hoe dit in die praktyk werk, kom ons teken 'n makro op wat 'n mate van formatering op die geselekteerde selle toepas. Doen hiervoor die volgende:

    1. Kies een of meer selle wat jy wil formateer.
    2. Op die Ontwikkelaar -oortjie of Status balk, klik Tek makro op .
    3. In die dialoogkassie Tek makro op op, stel die volgende instellings op:
      • Noem die makro Header_Formatting (want ons gaan kolomopskrifte formateer).
      • Plaas die wyser in die Kortpadsleutel -boks, en druk Shift + F-sleutels gelyktydig. Dit sal die Ctrl + Shift + F-kortpad aan die makro toewys.
      • Kies om die makro in hierdie werkboek te stoor.
      • Vir Beskrywing , gebruik die volgende teks om te verduidelik wat die makro doen: Maak teks vetdruk, voeg vulkleur by en sentreer .
      • Klik OK om op te neem.

    4. Formateer die vooraf geselekteerde selle soos jy wil. Vir hierdie voorbeeld gebruik ons ​​die vetgedrukte teksformatering, ligblou vulkleur en middelbelyning.

      Wenk. Moenie enige selle kies nadat jy die makro begin opneem het nie. Dit sal verseker dat al die formatering van toepassing is op die seleksie , nie 'n spesifieke reeks nie.

    5. Klik Stop opname op óf die Ontwikkelaar -oortjie óf die Status -balk.

    Dit is dit! Jou makro is opgeneem. Nou kan jy enige reeks selle in enige blad kies, druk die toegewysde kortpad ( Ctrl+ Shift + F ), en jou pasgemaakte formatering sal onmiddellik op die geselekteerde selle toegepas word.

    Hoe om met aangetekende makro's in Excel te werk

    Alle hoofopsies wat Excel vir makro's bied, kan verkry word via die Makro dialoogkassie. Om dit oop te maak, klik die Makro's -knoppie op die Ontwikkelaar -oortjie of druk die Alt+ F8-kortpad.

    In die dialoogkassie wat oopmaak, kan jy 'n lys makro's sien wat beskikbaar is in alle oop werkboeke of wat met 'n spesifieke werkboek geassosieer word en van die volgende opsies gebruik maak:

    • Run - voer die gekose makro uit .
    • Stap into - laat jou toe om die makro in die Visual Basic Editor te ontfout en te toets.
    • Redigeer - maak die gekose makro oop indie VBA Editor, waar jy die kode kan bekyk en redigeer.
    • Delete - verwyder die geselekteerde makro permanent.
    • Opsies – laat die verandering van die makro se eienskappe soos die geassosieerde Kortpad sleutel en Beskrywing .

    Hoe om te kyk makro's in Excel

    Die kode van 'n Excel-makro kan in die Visual Basic Editor bekyk en gewysig word. Om die redigeerder oop te maak, druk Alt + F11 of klik die Visual Basic -knoppie op die Ontwikkelaar -oortjie.

    As jy sien die VB Redakteur vir die eerste keer, moet asseblief nie moedeloos of geïntimideer voel nie. Ons gaan nie praat oor die struktuur of sintaksis van die VBA-taal nie. Hierdie afdeling sal jou net 'n bietjie basiese begrip gee van hoe Excel-makro's werk en wat die opname van 'n makro eintlik doen.

    Die VBA Editor het verskeie vensters, maar ons sal op die twee hoofs fokus:

    Project Explorer - vertoon 'n lys van alle oop werkboeke en hul velle. Daarbenewens wys dit modules, gebruikersvorms en klasmodules.

    Kodevenster - dit is waar jy VBA-kode kan bekyk, redigeer en skryf vir elke objek wat in die Project Explorer vertoon word.

    Toe ons die voorbeeldmakro opgeneem het, het die volgende dinge in die agterkant voorgekom:

    • 'n Nuwe module ( Moduel1 ) was ingevoeg.
    • Die VBA-kode van die makro is in die Kode-venster geskryf.

    Om die kode van 'n spesifiekemodule, dubbelklik op die module ( Module1 in ons geval) in die Project Explorer-venster. Normaalweg het 'n makrokode hierdie dele:

    Makronaam

    In VBA begin enige makro met Sub gevolg deur die makronaam en eindig met End Sub , waar "Sub" kort is vir Subroutine (ook genoem Prosedure ). Ons voorbeeldmakro word Header_Formatting() genoem, so die kode begin met hierdie reël:

    Sub Header_Formatting()

    As jy die makro wil hernoem , vee eenvoudig die huidige naam en tik 'n nuwe een direk in die Kode-venster.

    Kommentaar

    Reëls wat met 'n apostrof (') voorvoeg en by verstek in groen vertoon word, word nie uitgevoer nie. Dit is opmerkings wat vir inligtingsdoeleindes bygevoeg is. Die kommentaarlyne kan veilig verwyder word sonder om die funksionaliteit van die kode te beïnvloed.

    Gewoonlik het 'n opgeneemde makro 1 - 3 kommentaarlyne: makronaam (verpligtend); beskrywing en kortpad (indien gespesifiseer voor opname).

    Uitvoerbare kode

    Na kommentaar kom daar die kode wat die aksies wat jy opgeneem het, uitvoer. Soms kan 'n aangetekende makro baie oorbodige kode hê, wat steeds nuttig kan wees om uit te vind hoe dinge met VBA werk :)

    Die onderstaande prent wys wat elke deel van ons makro se kode doen:

    Hoe om 'n aangetekende makro te laat loop

    Deur 'n makro te laat loop, sê jy vir Excel om terug te gaan na die opgeneemde VBA-kode en diepresies dieselfde stappe. Daar is 'n paar maniere om 'n aangetekende makro in Excel te laat loop, en hier is die vinnigste:

    • As jy 'n sleutelbordkortpad aan die makro toegewys het, druk daardie kortpad .
    • Druk Alt + 8 of klik die Makro's -knoppie op die Ontwikkelaar -oortjie. In die Makro dialoogkassie, kies die gewenste makro en klik Run .

    Dit is ook moontlik om te hardloop 'n aangetekende makro deur op jou eie knoppie te klik. Hier is die stappe om een ​​te maak: Hoe om 'n makro-knoppie in Excel te skep.

    Hoe om makro's in Excel te stoor

    Of jy 'n makro opgeneem het of VBA-kode met die hand geskryf het, om die makro te stoor , moet jy die werkboek stoor as makro-geaktiveer (.xlms-uitbreiding). Hier is hoe:

    1. In die werkboek wat die makro bevat, klik die Stoor -knoppie of druk Ctrl + S .
    2. In die Stoor as dialoogkassie, kies Excel Macro-Enabled Workbook (*.xlsm) uit die Stoor as tipe aftreklys, en klik dan Stoor :

    Excel-makro's: wat is en wat is nie aangeteken nie

    Soos jy sopas gesien het, is dit redelik maklik om 'n makro in Excel op te neem. Maar om effektiewe makro's te skep, moet jy verstaan ​​wat agter die skerms aangaan.

    Wat is opgeneem

    Excel se Makro-opnemer vang nogal baie dinge vas - byna alle muisklikke en sleuteldruk. U moet dus noukeurig oor u stappe dink om oortollige kode te vermylei tot onverwagte gedrag van jou makro. Hieronder is 'n paar voorbeelde van wat Excel opteken:

    • Kies selle met die muis of sleutelbord. Slegs die laaste seleksie voor 'n aksie word aangeteken. As jy byvoorbeeld die reeks A1:A10 kies en dan sel A11 klik, sal slegs die keuse van A11 aangeteken word.
    • Selformatering soos vul- en lettertipekleur, belyning, grense, ens.
    • Getalformatering soos persentasie, geldeenheid, ens.
    • Redigeer formules en waardes. Veranderinge word aangeteken nadat jy Enter gedruk het.
    • Blaai, skuif Excel-vensters, skakel oor na ander werkblaaie en werkboeke.
    • Voeg, benoem, skuif en verwyder werkblaaie.
    • Skep, oopmaak en stoor van werkboeke.
    • Laat ander makro's hardloop.

    Wat nie aangeteken kan word nie

    Ten spyte van baie verskillende dinge wat Excel kan opneem, is sekere kenmerke buite die vermoë van die Makro-opnemer:

    • Aanpassings van die Excel-lint en Vinnige Toegang-nutsbalk.
    • Handelinge binne Excel-dialoogvensters soos Voorwaardelike formatering of Vind en vervang (slegs die resultaat word aangeteken).
    • Interaksies met ander programme. Jy kan byvoorbeeld nie kopieer/plak van 'n Excel-werkboek in 'n Word-dokument opneem nie.
    • Enigiets wat die VBA-redigeerder behels. Dit stel die belangrikste beperkings – baie dinge wat op die programmeringsvlak gedoen kan word, kan nieaangeteken word:
      • Skep pasgemaakte funksies
      • Vertoon pasgemaakte dialoogkassies
      • Maak lusse soos Vir Volgende , Vir Elke , Doen terwyl , ens.
      • Evaluering van toestande. In VBA kan jy die IF Then Else -stelling gebruik om 'n toestand te toets en 'n kode uit te voer as die voorwaarde waar is of 'n ander kode as die voorwaarde onwaar is.
      • Uitvoer van kode gebaseer op gebeurtenisse . Met VBA kan jy baie gebeurtenisse gebruik om 'n kode uit te voer wat met daardie gebeurtenis geassosieer word (soos om 'n werkboek oop te maak, 'n werkblad te herbereken, seleksie te verander, ensovoorts).
      • Gebruik van argumente. Wanneer u 'n makro in die VBA-redigeerder skryf, kan u invoerargumente verskaf vir 'n makro om 'n sekere taak uit te voer. 'n Opgeneemde makro kan geen argumente hê nie, want dit is onafhanklik en is nie aan enige ander makro's gekoppel nie.
      • Verstaan ​​logika. Byvoorbeeld, as jy 'n makro opneem wat spesifieke selle kopieer, sê in die Totaal -ry, sal Excel slegs die adresse van die gekopieerde selle opneem. Met VBA kan jy die logika kodeer, dit wil sê die waardes in die Totaal -ry kopieer.

    Alhoewel die bogenoemde beperkings baie grense stel vir aangetekende makro's, hulle is steeds 'n goeie beginpunt. Selfs al het jy geen idee van die VBA-taal nie, kan jy vinnig 'n makro opneem, en dan die kode daarvan ontleed.

    Nuttige wenke vir die opneem van makro's in Excel

    Hieronder vind jy 'n paar wenke en notas wat potensieel kan

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.