Hjem Sosiale medier 10 Måter å øke makroene dine - dummies

10 Måter å øke makroene dine - dummies

Innholdsfortegnelse:

Video: Elite Dangerous My Top 10 Thargoid Encounters 2024

Video: Elite Dangerous My Top 10 Thargoid Encounters 2024
Anonim

Da Excel-makroene dine blir stadig mer robuste og komplekse, kan du oppleve at de mister ytelsen. Når du diskuterer makroer, er ordet ytelse vanligvis synonymt med hastighet . Hastigheten er hvor raskt dine VBA-prosedyrer utfører sine tiltenkte oppgaver. Følgende er ti måter å holde Excel-makroene dine på sitt optimale ytelsesnivå.

Avsluttende arkberegninger

Visste du at hver gang en celle som påvirker noen formler i regnearket, blir endret eller manipulert, beregner Excel hele regnearket? I regneark som har en stor mengde formler, kan denne oppførselen redusere makroene dine drastisk.

Du kan bruke programmet. Beregningsegenskaper for å fortelle Excel for å bytte til manuell beregningsmodus. Når en arbeidsbok er i manuell beregningsmodus, vil arbeidsboken ikke omberegnes til du eksplisitt utløser en beregning ved å trykke på F9-tasten.

Plasser Excel i manuell beregningsmodus, kjør koden, og sett deretter tilbake til automatisk beregningsmodus.

Sub Macro1 () Søknad. Beregning = xlCalculationManual 'Legg inn makrokoden din her. Beregning = xlCalculationAutomatic End Sub

Angi beregningsmodus tilbake til xlCalculationAutomatic utløser automatisk en omberegning av regnearket, så det er ikke nødvendig å trykke på F9-tasten etter at makroen har gått.

Deaktivering av oppdatering av arkskjermer

Det kan hende du merker at når makroene dine går, gjør skjermbildet en del flimrende. Denne flimreringen er Excel, og prøver å redraw skjermen for å vise nåværende tilstand på regnearket. Dessverre, hver gang Excel redraws skjermen, tar det opp minnesressurser.

Du kan bruke programmet. ScreenUpdating-egenskap for å deaktivere skjermoppdateringer til makroen har fullført. Deaktivering av skjermoppdatering sparer tid og ressurser, slik at makroen din kan kjøre litt raskere. Etter at makrokoden din er ferdig, kan du aktivere skjermoppdateringen igjen.

Sub Macro1 () Søknad. Beregning = xlCalculationManual Application. ScreenUpdating = False 'Plasser makrokoden din her Application. Beregning = xlCalculationAutomatic Application. ScreenUpdating = True End Sub

Etter at du har satt egenskapen ScreenUpdating tilbake til True, utløser Excel automatisk en omdekning av skjermen.

Slå av statuslinjepdateringer

Excel-statuslinjen, som vises nederst i Excel-vinduet, viser vanligvis fremdriften av visse handlinger i Excel.Hvis makroen din jobber med masse data, vil statuslinjen ta opp noen ressurser.

Det er viktig å merke seg at å slå av skjermoppdatering er atskilt fra å slå av statuslinjens display. Statuslinjen vil fortsette å bli oppdatert, selv om du deaktiverer skjermoppdatering. Du kan bruke programmet. DisplayStatusBar-egenskapen for midlertidig å deaktivere oppdateringer i statuslinjen, og forbedrer ytelsen til makroen din ytterligere:

Sub Macro1 () Program. Beregning = xlCalculationManual Application. ScreenUpdating = False Application. DisplayStatusBar = False 'Plasser makrokoden din her Application. Beregning = xlCalculationAutomatic Application. ScreenUpdating = True Application. DisplayStatusBar = True End Sub

Fortell Excel for å ignorere hendelser

Du kan implementere makroer som hendelsesprosedyrer, og forteller Excel for å kjøre bestemte koder når et regneark eller en arbeidsbok endres.

Noen ganger gjør standardmakroer endringer som utløser en hendelsesprosedyre. Hvis du for eksempel har en standardmakro som manipulerer flere celler på Ark1, endres hver makro på det aktuelle arket, og makroen må pause mens Worksheet_Change-hendelsen kjører.

Du kan legge til et annet nivå av ytelsesforbedring ved å bruke egenskapen EnableEvents til å fortelle Excel for å ignorere hendelser mens makroen din kjører.

Sett egenskapen EnableEvents til False før du kjører makroen din. Når makrokoden din er ferdig, kan du sette egenskapen EnableEvents tilbake til True.

Sub Macro1 () Søknad. Beregning = xlCalculationManual Application. ScreenUpdating = False Application. DisplayStatusBar = False Application. EnableEvents = False 'Legg inn makrokoden din her Applikasjon. Beregning = xlCalculationAutomatic Application. ScreenUpdating = True Application. DisplayStatusBar = True Application. EnableEvents = True End Sub

Skjul sidebrudd

Hver gang makroen endrer antall rader, endrer antall kolonner eller endrer sideoppsettet i et regneark, er Excel tvunget til å ta tid til å beregne sidebrytene som vises på arket.

Du kan unngå denne oppførselen ved å gjemme sidebrytelsene før du starter makroen.

Sett skjermegenskapen til DisplayPageBreaks til False for å skjule sideskift. Hvis du vil fortsette å vise sideskift etter at makroen har gått, må du sette DisplayPageBreaks-arkegenskapen tilbake til True.

Sub Macro1 () Søknad. Beregning = xlCalculationManual Application. ScreenUpdating = False Application. DisplayStatusBar = False Application. EnableEvents = False Activesheet. DisplayPageBreaks = False 'Sett inn makrokoden din her Applikasjon. Beregning = xlCalculationAutomatic Application. ScreenUpdating = True Application. DisplayStatusBar = True Application. EnableEvents = True Activesheet. DisplayPageBreaks = True End Sub

Oppdatering av pivottabell

Hvis makroen din manipulerer pivottabeller som inneholder store datakilder, kan du oppleve dårlig ytelse når du gjør ting som dynamisk legge til eller flytte pivotfelt.

Du kan forbedre ytelsen til makroen ved å suspendere omberegningen av svingbordet til alle svingfeltendringer er gjort. Sett bare pivottabellen. ManuellUppdater eiendom til True til utsette omberegning, kjør makrokoden, og sett deretter pivottabellen. ManuellUppdater eiendom tilbake til False for å utløse omberegningen.

Sub Macro1 () ActiveSheet. Pivottabeller ("PivotTable1"). ManualUpdate = True 'Plasser makrokoden her ActiveSheet. Pivottabeller ("PivotTable1"). ManualUpdate = False End Sub

Styring klar for kopiering og liming

Det er viktig å huske at selv om Macro Recorder sparer tid ved å skrive VBA kode for deg, skriver den ikke alltid den mest effektive koden. Et godt eksempel er hvordan Macro Recorder fanger opp en kopi-og-lime-handling du utfører under opptak.

Du kan gi makroene en liten boost ved å kutte mellemannen og utføre en direkte kopi fra en celle til en målcelle. Denne alternative koden bruker destinasjonsargumentet for å omgå utklippstavlen og kopiere innholdet til celle A1 direkte til celle B1.

Range ("A1"). Kopier destinasjon: = Range ("B1")

Hvis du trenger å kopiere kun verdier (ikke formatering eller formler), kan du forbedre ytelsen enda mer ved å unngå Kopier-metoden alt sammen. Bare sett verdien av målcellen til samme verdi som er funnet i kildecellen. Denne metoden er omtrent 25 ganger raskere enn ved bruk av kopimetoden:

Område ("B1"). Verdi = Range ("A1"). Verdi

Hvis du bare skal kopiere formler fra en celle til et annet (ikke verdier eller formatering), kan du sette formelen til målcellen til samme formel som finnes i kildecellen:

Område ("B1"). Formel = Range ("A1"). Formel

Bruke Med-setningen

Når du registrerer makroer, vil du ofte manipulere den samme gjenstanden mer enn en gang. Du kan spare tid og forbedre ytelsen ved å bruke Med-setningen for å utføre flere handlinger på en gitt gjenstand i ett skudd.

Med-setningen som brukes i følgende eksempel, forteller Excel å bruke alle formatteringsendringene på en gang:

Med Range ("A1"). Font. Fet = ekte Kursiv = True. Underline = xlUnderlineStyleSingle End With

Å bli vant med å chunking handlinger i Med uttalelser vil ikke bare holde makroene dine raskere, men også gjøre det enklere å lese makrokoden din.

Unngå Select-metoden

Makroopptaker er glad i å bruke Select-metoden for å eksplisitt velge objekter før du tar handlinger på dem. Det er generelt ikke nødvendig å velge objekter før de arbeider med dem. Faktisk kan du forbedre makroytelsen dramatisk ved å ikke bruke Select-metoden.

Etter å ha tatt opp makroene dine, gjør det en vane å endre den genererte koden for å fjerne Select-metodene. I dette tilfellet ser den optimaliserte koden ut som følgende:

Ark ("Ark1"). Range ("A1"). FormulaR1C1 = "1000" Sheets ("Sheet2"). Range ("A1"). FormulaR1C1 = "1000" Sheets ("Sheet3"). Range ("A1"). FormulaR1C1 = "1000"

Merk at ingenting blir valgt.Koden bruker bare objekthierarkiet til å bruke de nødvendige tiltakene.

Begrensende turer til regnearket

En annen måte å øke hastigheten på makroene dine er å begrense antall ganger du refererer til regnearkdata i koden din. Det er alltid mindre effektivt å hente data fra regnearket enn fra minnet. Det vil si at makroene dine vil kjøre mye raskere hvis de ikke trenger å gjenta flere ganger med regnearket.

For eksempel, krever følgende enkle kode VBA for kontinuerlig å returnere til Ark ("Ark1"). Område ("A1") for å få nummeret som trengs for at sammenligningen skal utføres i If-setningen:

For ReportMonth = 1 til 12 hvis rekkevidde ("A1"). Value = ReportMonth Så MsgBox 1000000 / ReportMonth End Hvis Next ReportMonth

En mye mer effektiv metode er å lagre verdien i Ark ("Sheet1"). Range ("A1") til en variabel som heter MyMonth. På denne måten refererer koden til MyMonth-variabelen i stedet for regnearket:

Dim MyMonth som Integer MyMonth = Range ("A1"). Verdi For ReportMonth = 1 til 12 Hvis MyMonth = ReportMonth then MsgBox 1000000 / ReportMonth End Hvis Next ReportMonth

Vurder bruk av variabler for å jobbe med data i minnet i motsetning til direkte referanse regneark.

10 Måter å øke makroene dine - dummies

Redaktørens valg

Ved hjelp av farger og gradienter med HTML5 Canvas Tag - dummies

Ved hjelp av farger og gradienter med HTML5 Canvas Tag - dummies

Nesten alle operasjoner i HTML5 lerret funksjonen implementerer en fylle eller stroke stil. For å få mest mulig ut av lerretet, må du forstå hvordan de fungerer. De tre primære typene stiler du kan bruke på fyll og slag er farger, gradienter og mønstre. Bruke farger med HTML5 lerret-merket For å spesifisere en ...

Ved hjelp av HTML for å kode websidene dine - dummies

Ved hjelp av HTML for å kode websidene dine - dummies

HTML lar deg legge til beskrivende koder på web sidetekst, for å endre utseendet, eller opprette lister, tabeller, koblinger og så videre. HTML er designet for å være noe som mennesker kan lese og at maskiner kan behandle, en form for felles grunnlag for menneskelig kommunikasjon. Anta at du vil legge til fet skrift til et ord ...

Redaktørens valg

Slik skriver du Excel-formler og -funksjoner direkte i regnearkceller - dummier

Slik skriver du Excel-formler og -funksjoner direkte i regnearkceller - dummier

Kanskje den enkleste oppføringen Metoden er å skrive en formel direkte i en celle i et Excel-regneark. Skriv bare formler som ikke inneholder noen funksjoner, og trykk Enter-tasten for å fullføre oppføringen. Prøv dette enkle eksempelet: Klikk på en celle der formelen skal skrives inn. Skriv inn denne enkle matematikkbaserte formelen: = 6 + (9/5) ...

Hvordan du skriver inn lister og seriell data ved hjelp av AutoFill i Excel 2016 - dummies

Hvordan du skriver inn lister og seriell data ved hjelp av AutoFill i Excel 2016 - dummies

I Excel 2016, kan data som faller inn i kategorien "seriell" - månedens navn, ukedag og sammenhengende tall og datoer, for eksempel - skrives inn raskt med kommandoen AutoFill. Tro det eller ei, Excel gjenkjenner visse typer seriell data og går inn i den for deg som en del av AutoFill-funksjonen. ...

Hvordan du skriver inn en funksjon i Excel med funksjonskommandoen - dummies

Hvordan du skriver inn en funksjon i Excel med funksjonskommandoen - dummies

Hvis du er ikke kjent med hvordan en funksjon fungerer i Excel - kanskje du ikke engang er sikker på hvilken funksjon du vil bruke - du må bruke Formulas-fanens Innsett Funksjon-kommando for å finne funksjonen og deretter identifisere argumentene riktig. Hvis du vil bruke kommandoen Funksjonsveiviser på denne måten, følg ...

Redaktørens valg

ÅNdelig gjenoppretting: Den samaritanske kvinne ved brønndummene

ÅNdelig gjenoppretting: Den samaritanske kvinne ved brønndummene

Den samaritanske kvinnen ved brønnen er ingen engel. Blandet opp med en feil folkemengde, denne stakkars kvinnen fra Samaria har et godt rykte. Hun hadde vært gift fem ganger og bodde i synd med en mann som ikke var hennes ektemann. Gjennom hennes historie kommer leksjonen at folk ikke burde leve av kjønnslig glede. ...

Gjenoppleve den bibelske julehistorien - dummies

Gjenoppleve den bibelske julehistorien - dummies

I stedet for bare å vises på jorden en dag eller "stråle ned" bruk Trek-talk), sier Jesus at han har kommet inn i denne verden på de mest ortodokse måtene: fødsel. Jesu utseende på jorden er kjent som inkarnasjonen, eller hva Johannes-evangeliet kaller Jesus "blir kjøtt. "Interessant nok, skjønner John ikke hendelsene ...