Slå automatiske beregninger fra (eller til) - eksempler på VBA -kode

Når du opdaterer en celleværdi, gennemgår Excel en proces til genberegning af projektmappen. Når du arbejder direkte i Excel, vil du have, at dette sker 99,9% af tiden (undtagelsen er, hvis du arbejder med en ekstremt stor projektmappe). Dette kan dog virkelig bremse din VBA -kode. Det er en god praksis at indstille dine beregninger til manuelle i begyndelsen af ​​makroer og gendanne beregninger i slutningen af ​​makroer. Hvis du skal genberegne projektmappen, kan du manuelt fortælle Excel, at den skal beregne.

Slå automatiske beregninger fra

Du kan deaktivere automatisk beregning med en makro ved at indstille den til xlmanual. Brug følgende stykke VBA -kode:

1 Application.Calculation = xlManual

Slå automatiske beregninger til igen

Sådan aktiveres automatisk beregning igen med indstillingen xlAutomatic:

1 Beregning = xlAutomatisk

Jeg anbefaler, at du deaktiverer automatiske beregninger i begyndelsen af ​​din procedure og genaktiverer automatiske beregninger i slutningen. Det vil se sådan ud:

Deaktiver Makroeksempel for automatiske beregninger

12345678 Sub Auto_Calcs_Example ()Application.Calculation = xlManual'Gør nogetBeregning = xlAutomatiskAfslut Sub

Manuel beregning

Når automatiske beregninger er deaktiveret, kan du bruge Beregn kommando for at tvinge Excel til at genberegne:

1 Beregn

Du kan også bede Excel om kun at genberegne et individuelt regneark:

1 Regneark ("ark1"). Beregn

Du kan også fortælle VBA at genberegne bare et område (klik for at læse vores artikel om VBA -beregningsmetoder)

Sådan kan dette se ud inde i en makro:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Application.Calculation = xlManual'Gør noget'GenberegningBeregn'Gør flere tingBeregning = xlAutomatiskAfslut Sub

VBA -indstillinger - Fremskynd kode

Hvis dit mål er at fremskynde din kode, bør du også overveje at justere disse andre indstillinger:

Deaktivering af Screenupdating kan gøre en enorm forskel i hastighed:

1 Application.ScreenUpdating = Falsk

Deaktivering af statuslinjen vil også gøre en lille forskel:

1 Application.DisplayStatusBar = Falsk

Hvis din projektmappe indeholder begivenheder, bør du også deaktivere begivenheder i starten af ​​dine procedurer (for at fremskynde koden og for at forhindre endeløse sløjfer!):

1 Application.EnableEvents = Falsk

Sidst kan din VBA-kode bremses, når Excel forsøger at genberegne sideskift (Bemærk: ikke alle procedurer påvirkes). For at deaktivere DisplayPageBreaks skal du bruge denne kodelinje:

1 ActiveSheet.DisplayPageBreaks = Falsk

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave