Vypnite (alebo zapnite) automatické výpočty - Príklady kódu VBA

Kedykoľvek aktualizujete hodnotu bunky, Excel prejde procesom prepočtu zošita. Pri práci priamo v programe Excel chcete, aby sa to stalo 99,9% času (výnimkou je prípad, keď pracujete s extrémne veľkým zošitom). To však môže skutočne spomaliť váš kód VBA. Je dobrým zvykom nastaviť svoje výpočty na manuálne na začiatku makier a obnoviť výpočty na konci makier. Ak potrebujete zošit prepočítať, môžete Excelu vypočítať manuálne.

Vypnite automatické výpočty

Automatický výpočet môžete vypnúť pomocou makra nastavením na xlmanual. Použite nasledujúci kus kódu VBA:

1 Application.Calculation = xlManual

Automatické výpočty znova zapnite

Ak chcete znova zapnúť automatický výpočet s nastavením xlAutomatic:

1 Application.Calculation = xlAutomatic

Odporúčame zakázať automatické výpočty na úplnom začiatku postupu a automatické výpočty znova povoliť na konci. Bude to vyzerať takto:

Vypnite príklad makra automatických výpočtov

12345678 Sub auto_Calcs_Example ()Application.Calculation = xlManual'Urob niečoApplication.Calculation = xlAutomaticKoniec pod

Ručný výpočet

Keď sú automatické výpočty vypnuté, môžete použiť Vypočítajte príkaz na prinútenie Excelu prepočítať:

1 Vypočítajte

Tiež môžete Excelu povedať, aby prepočítal iba jednotlivý pracovný hárok:

1 Pracovné listy („list1“). Vypočítajte

Môžete tiež povedať VBA, aby prepočítala iba rozsah (kliknutím si prečítajte náš článok o metódach výpočtu VBA)

Takto to môže vyzerať v makre:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Application.Calculation = xlManual'Urob niečo„Prepočítaj si toVypočítajte„Rob viac vecíApplication.Calculation = xlAutomaticKoniec pod

Nastavenia VBA - Zrýchlite kód

Ak je vašim cieľom zrýchlenie kódu, mali by ste tiež zvážiť úpravu týchto ďalších nastavení:

Deaktivácia Screenupdating môže znamenať obrovský rozdiel v rýchlosti:

1 Application.ScreenUpdating = False

Vypnutie stavového riadka bude mať tiež malý rozdiel:

1 Application.DisplayStatusBar = False

Ak váš zošit obsahuje udalosti, mali by ste tiež zakázať udalosti na začiatku vašich procedúr (na urýchlenie kódu a zabránenie nekonečným slučkám!):

1 Application.EnableEvents = False

Nakoniec sa váš kód VBA môže spomaliť, keď sa Excel pokúsi znova vypočítať konce strán (Poznámka: Neovplyvní to všetky postupy). Na vypnutie rozhrania DisplayPageBreaks použite tento riadok kódu:

1 ActiveSheet.DisplayPageBreaks = Nepravda

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave