Vypněte (nebo zapněte) automatické výpočty - příklady kódu VBA

Kdykoli aktualizujete hodnotu buňky, Excel projde procesem přepočítání sešitu. Při práci přímo v aplikaci Excel chcete, aby se to stalo 99,9% času (výjimka je, pokud pracujete s extrémně velkým sešitem). To však může skutečně zpomalit váš kód VBA. Je dobrým zvykem nastavit výpočty ručně na začátku maker a obnovit výpočty na konci maker. Pokud potřebujete sešit přepočítat, můžete ručně sdělit Excelu, aby vypočítal.

Vypněte automatické výpočty

Automatický výpočet můžete vypnout pomocí makra nastavením na xlmanual. Použijte následující část kódu VBA:

1 Application.Calculation = xlManual

Zapněte znovu automatické výpočty

Chcete -li znovu zapnout automatický výpočet s nastavením xlAutomatic:

1 Application.Calculation = xlAutomatic

Doporučuji deaktivovat automatické výpočty na samém začátku postupu a automatické výpočty znovu povolit na konci. Bude to vypadat takto:

Zakázat příklad automatického výpočtu makro

12345678 Dílčí automatický_kalkuly_Příklad ()Application.Calculation = xlManual'Dělej něcoApplication.Calculation = xlAutomaticEnd Sub

Ruční výpočet

Když jsou automatické výpočty deaktivovány, můžete použít Vypočítat příkaz k vynucení přepočtu Excelu:

1 Vypočítat

Můžete také říct Excelu, aby přepočítal pouze jednotlivý list:

1 Pracovní listy („sheet1“). Vypočítejte

Můžete také říct VBA, aby přepočítala pouze rozsah (kliknutím si přečtěte náš článek o metodách výpočtu VBA)

Takto to může vypadat uvnitř makra:

12345678910111213 Dílčí automatické_kalky_Příklad_Manuální_kalkulace ()Application.Calculation = xlManual'Dělej něco"Přepočítat."Vypočítat„Dělejte více věcíApplication.Calculation = xlAutomaticEnd Sub

Nastavení VBA - Zrychlete kód

Pokud je vaším cílem zrychlit kód, měli byste také zvážit úpravu těchto dalších nastavení:

Deaktivace Screenupdating může znamenat obrovský rozdíl v rychlosti:

1 Application.ScreenUpdating = False

Vypnutí stavového řádku bude mít také malý rozdíl:

1 Application.DisplayStatusBar = False

Pokud váš sešit obsahuje události, měli byste také zakázat události na začátku vašich procedur (pro zrychlení kódu a zabránění nekonečným smyčkám!):

1 Application.EnableEvents = False

Nakonec se váš kód VBA může zpomalit, když se Excel pokusí znovu vypočítat konce stránek (Poznámka: nebudou ovlivněny všechny postupy). Chcete -li vypnout DisplayPageBreaks, použijte tento řádek kódu:

1 ActiveSheet.DisplayPageBreaks = False

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave