10 måder at fremskynde deres macros

, som din excel - blevet mere og mere robust og komplekse, kan du finde, at de mister ydeevne.når vi drøfter macros, ord, ydeevne, normalt er synonymt med, speed.hastighed er, hvor hurtigt dit vba procedurer, der udfører deres opgaver.følgende er ti måder at holde din excel - på deres optimalt niveau. at standse blad beregninger, vidste du, at hver gang en celle, der påvirker nogen formel i din regneark er ændret eller manipuleret, excel omberegner hele arbejdsplan.i de papirer, der har en stor del af formler, denne adfærd kan drastisk, sænk farten macros. kan du bruge anvendelse. beregning ejendom fortælle excel til skift til manuel beregning tilstand.når en dagbog er i manuelle beregning tilstand, arbejdsbog vil ikke omberegne indtil du udtrykkeligt udløser en beregning ved at trykke f9 nøgle., excel til manuel beregning tilstand, løb din kode, og så gå tilbage til automatisk beregning tilstand. i macro1() anvendelse. beregning = xlcalculationmanual sted din makro - kode her beregning anvendelse. = xlcalculationautomatic ende under, at beregningen mode tilbage til xlcalculationautomatic automatisk vil medføre en ny beregning af kladde, så er der ingen grund til at presse den fra centrale efter jeres makro løber., invaliderende blad skærm ajourføring, du kan mærke det, når din macros løb, din skærm er en del af flimrende.denne kompetence er excel - forsøger at tegne skærmen viser den nuværende situation i den arbejdsplan.desværre, hver gang excel rokker ved skærm, der er hukommelse ressourcer., kan du bruge den application.screenupdating ejendom til at frakoble skærm opdateringer, indtil deres makroøkonomiske har afsluttet.invaliderende skærm ajourføring sparer tid og ressourcer, således at deres makro - til at løbe lidt hurtigere.efter jeres makro - kode er færdige med at køre, kan du vende tilbage på skærmen ajourføring. i macro1() anvendelse. beregning = xlcalculationmanual application.screenupdating = falsk sted din makro - kode her anvendelse. beregning = xlcalculationautomatic application.screenupdating = sand afslutning under, efter du har sat screenupdating ejendom tilbage til true, excel automatisk vil udløse et træk på skærmen., at slukke status bar opdateringer, excel - status bar, som forekommer på bunden af excel - vindue, normalt viser de fremskridt, der er gjort af visse aktioner i excel.hvis deres makroøkonomiske arbejder med masser af data, den status, bar vil tage nogle ressourcer. det er vigtigt at bemærke, at slukke skærm ajourføring er adskilt fra at slukke status bar display.status bar fortsat vil blive ajourført, selv hvis du deaktivere skærm ajourføring.du kan bruge den application.displaystatusbar ejendom til midlertidigt at frakoble enhver status bar opdateringer, yderligere at forbedre udførelsen af deres makroøkonomiske: sub macro1() anvendelse. beregning = xlcalculationmanual application.screenupdating = falske application.displaystatusbar = falsk sted din makro - kode her anvendelse. beregning = xlcalculationautomatic application.screenupdating = sandt application.displaystatusbar = sandt ende afrika, fortæller excel - at ignorere begivenhederne, du kan gennemføre macros som event procedurer, fortæller excel - at løbe visse regler, når en kladde eller arbejdsbog ændringer. undertiden standard - ændringer, der vil udløse en begivenhed procedure.hvis man f.eks. har en standard makro, der manipulerer flere celler på sheet1, hver gang i en celle på blad er ændret, deres makroøkonomiske har pause, mens worksheet_change begivenhed løber. kan du tilføje en anden præstationsniveau, fremme af anvendelse af enableevents ejendom fortælle excel - at ignorere hændelser, mens jeres makro, der løber. den enableevents ejendom til falsk, før dit macro.efter jeres makro - kode er færdige med at køre, kan du sætte enableevents ejendom tilbage til sandt. i macro1() anvendelse. beregning = xlcalculationmanual application.screenupdating = falske application.displaystatusbar = falske application.enableevents = falsk sted din makro - kode her anvendelse. beregning = xlcalculationautomatic application.screenupdating = sandt application.displaystatusbar = sandt application.enableevents = sand afslutning under skjuler side pauser, hver gang jeres makro ændrer antallet af rækker, ændrer den række kolonner, eller ændrer den side opstilling af en kladde, excel - er tvunget til at tage tid at omkalkulere side bryder angivet på blad. du kan undgå denne opførsel ved blot at skjule side pauser, inden du startermacro., der displaypagebreaks blad ejendom til forkert at skjule side pauser.hvis du ønsker at fortsætte med at vise page pauser efter deres makroøkonomiske løber, der displaypagebreaks blad ejendom tilbage til sandt. i macro1() anvendelse. beregning = xlcalculationmanual application.screenupdating = falske application.displaystatusbar = falske application.enableevents = falske activesheet.displaypagebreaks = falsk sted din makro - kode her anvendelse. beregning = xlcalculationautomatic application.screenupdating = sandt application.displaystatusbar = sandt application.enableevents = sandt activesheet.displaypagebreaks = sandt ende afrika, suspension - tabel opdateringer, hvis deres makroøkonomiske manipulerer - tabeller, som indeholder store datakilder, kan de opleve dårlige resultater, når de gør ting som dynamisk at tilføje eller at dreje fie 'erid.du kan forbedre resultaterne af deres makroøkonomiske ved at suspendere omberegning af dreje, tabel, indtil alle dreje, inden der er foretaget ændringer.bare sæt pivottable.manualupdate ejendom til rigtigt at udsætte beregning, løb din makro - kode, og så satte pivottable.manualupdate ejendom tilbage til falske til at udløse en ny beregning. i macro1() activesheet. pivottables ("pivottable1"). manualupdate = sandt sted din makro - kode her activesheet. pivottables ("pivottable1"). manualupdate = falske afslutning afrika, at fravælge kopi og pasta, er det vigtigt at huske på, at selv om makro - båndoptager sparer tid ved at skrive vba kode for dig, er det ikke altid skrive den mest effektive kode.et godt eksempel er, hvordan makro - båndoptager fanger nogen kopi og pasta handling du udfører, mens optagelse. du kan give din macros et lille skub, som skærer mellemmanden og foretage en direkte kopi fra en celle til en destination, celle.denne suppleant kode bruger bestemmelsessted argument for at omgå clipboard og kopi af indholdet af celle a1 direkte til celle b1. udvalg ("a1"). kopi destination: = område ("b1"), hvis du har brug for til at kopiere kun værdier (formatering og formler), du kan forbedre resultaterne endnu mere ved at undgå kopien metode, alle sammen.bare sæt den værdi af bestemmelsesstedet celle til samme værdi i kilden celle.denne metode er på ca. 25 gange hurtigere end ved hjælp af kopi metode:, afstand (b1). værdi = område ("a1"). værdi, hvis du har brug for til at kopiere kun formler fra en celle til en anden (ikke - værdier eller formatering), kan de fastsætte formel på bestemmelsesstedet celle til samme formlen i kilden mobil, range (b1). formel = område ("a1"). formel, der benytter den med erklæring, når registreringen macros, vil de ofte med samme formål mere end én gang.du kan spare tid og forbedre resultaterne ved hjælp af med redegørelse for at udføre flere aktioner på en given genstand i et skud., med erklæring udnyttelse i følgende eksempel fortæller excel til at anvende alle formatering ændringer på samme tid: med område ("a1"). skrifttype. fed = sandt. kursiv = sandt. understrege = xlunderlinestylesingle ende med, at få for vane løsrivning handlinger med erklæringer, vil ikke kun holde din macros løber hurtigere, men også gøre det lettere at læse din makro - kode. for at undgå, at den særlige metode, macro rekorder er glad for ved hjælp af den særlige metode udtrykkeligt at udvælge genstande, før der træffes foranstaltninger på dem.der er generelt ikke behøver at udvælge objekter før at arbejde med dem.du kan faktisk dramatisk forbedre makroøkonomiske resultater ved at undlade at anvende den særlige metode. efter registrering af deres macros, gøre det til en vane at ændre de genererede kode for at fjerne den særlige metoder.i dette tilfælde, optimeret kode ville se ud, som om følgende: plader ("sheet1"). udvalg ("a1"). formular1c1 = "1000" plader ("sheet2"). udvalg ("a1"). formular1c1 = "1000" plader ("sheet3" område ("a1").). formular1c1 = "1000", konstaterer, at den ikke er blevet udvalgt.kodeksen blot bruger objekt hierarki at anvende de foranstaltninger, der er behov for. at begrænse ture til arbejdsplan, en anden måde at fremskynde deres macros er at begrænse mængden af gange du reference kladde data i din kode.det er altid mindre effektive til at få oplysninger fra den arbejdsplan, end fra hukommelsen.det vil sige, at deres macros løber hurtigere, hvis de ikke har gentagne gange at interagere med kladde. f.eks. følgende enkle kode styrker vba til stadighed vende tilbage til plader ("sheet1"). udvalg ("a1") for at få det nødvendige antal til sammenligning, der udføres i, hvis udtalelse: for reportmonth = 1 til 12, hvis rækkevidde (a1). værdi = reportmonth så msgbox 1000000 eur /reportmonth, hvis næste reportmonth, en meget mere effektiv metode er at redde værdien i plader ("sheet1"). udvalg ("a1") til en variabel ringede mymonth.denne vej, kode referencer mymonth variabel i stedet for arbejdsplan: dim mymonth som hele mymonth = område ("a1"). værdien for reportmonth = 1 til 12, hvis mymonth = reportmonth så msgbox 1000000 eur /reportmonth, hvis næste reportmonth, overveje at øge variabler for at arbejde med data i erindring i modsætning til direkte referencer til opgaver.,,



Previous:
Next Page: