Slå av automatiska beräkningar (eller på) - Exempel på VBA -kod

När du uppdaterar ett cellvärde går Excel igenom en process för att beräkna arbetsboken igen. När du arbetar direkt i Excel vill du att detta ska hända 99,9% av tiden (undantaget är om du arbetar med en extremt stor arbetsbok). Detta kan dock verkligen sakta ner din VBA -kod. Det är en bra metod att ställa in dina beräkningar till manuell i början av makron och återställa beräkningar i slutet av makron. Om du behöver beräkna om arbetsboken kan du manuellt berätta för Excel att beräkna.

Stäng av automatiska beräkningar

Du kan stänga av automatisk beräkning med ett makro genom att ställa in den på xlmanual. Använd följande bit VBA -kod:

1 Application.Calculation = xlManual

Slå på automatiska beräkningar igen

För att slå på automatisk beräkning igen med inställningen xlAutomatic:

1 Application.Calculation = xlAutomatic

Jag rekommenderar att du inaktiverar automatiska beräkningar i början av din procedur och återaktiverar automatiska beräkningar i slutet. Det kommer att se ut så här:

Inaktivera makroexempel för automatiska beräkningar

12345678 Sub Auto_Calcs_Example ()Application.Calculation = xlManual'Göra någontingApplication.Calculation = xlAutomaticAvsluta Sub

Manuell beräkning

När automatiska beräkningar är inaktiverade kan du använda Beräkna kommando för att tvinga Excel att räkna om:

1 Beräkna

Du kan också berätta för Excel att bara beräkna ett enskilt kalkylblad:

1 Arbetsblad ("blad1"). Beräkna

Du kan också berätta för VBA att bara beräkna ett intervall (klicka för att läsa vår artikel om VBA -beräkningsmetoder)

Så här kan det se ut i ett makro:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Application.Calculation = xlManual'Göra någonting'ÅterkallaBeräkna'Gör fler sakerApplication.Calculation = xlAutomaticAvsluta Sub

VBA -inställningar - påskynda koden

Om ditt mål är att påskynda din kod bör du också överväga att justera dessa andra inställningar:

Inaktivera Screenupdating kan göra en enorm skillnad i hastighet:

1 Application.ScreenUpdating = Falskt

Att stänga av statusfältet kommer också att göra en liten skillnad:

1 Application.DisplayStatusBar = Falskt

Om din arbetsbok innehåller händelser bör du också inaktivera händelser i början av dina procedurer (för att påskynda koden och förhindra oändliga slingor!):

1 Application.EnableEvents = Falskt

Sist kan din VBA-kod bromsas när Excel försöker beräkna sidbrytningar igen (Obs! Alla procedurer påverkas inte). Använd denna kodrad för att stänga av DisplayPageBreaks:

1 ActiveSheet.DisplayPageBreaks = Falskt

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave