Izklopite (ali vklopite) samodejne izračune - primeri kode VBA

Kadar koli posodobite vrednost celice, Excel opravi postopek ponovnega izračuna delovnega zvezka. Ko delate neposredno v Excelu, želite, da se to zgodi 99,9% časa (izjema je, če delate z izjemno velikim delovnim zvezkom). Vendar pa to lahko zelo upočasni vašo kodo VBA. Dobra praksa je, da nastavite svoje izračune na ročne na začetku makrov in obnovite izračune na koncu makrov. Če morate znova izračunati delovni zvezek, lahko Excelu ročno naročite, naj izračuna.

Izklopite samodejne izračune

Samodejni izračun z makrom lahko izklopite tako, da ga nastavite na xlmanual. Uporabite naslednji del kode VBA:

1 Application.Calculation = xlPriročnik

Ponovno vklopite samodejne izračune

Če želite znova vklopiti samodejni izračun z nastavitvijo xlAutomatic:

1 Application.Calculation = xlAutomatic

Priporočam, da na samem začetku postopka onemogočite samodejne izračune, na koncu pa znova omogočite samodejne izračune. Izgledalo bo tako:

Onemogoči primer makra samodejnih izračunov

12345678 Sub Auto_Calcs_Example ()Application.Calculation = xlPriročnik'Naredi kajApplication.Calculation = xlAutomaticEnd Sub

Ročni izračun

Ko so samodejni izračuni onemogočeni, lahko uporabite Izračunaj ukaz, da prisilite Excel, da preračuna:

1 Izračunaj

Excelu lahko tudi poveste, da preračuna samo posamezen delovni list:

1 Delovni listi ("list1"). Izračunajte

VBA lahko tudi poveste, da preračuna le obseg (kliknite, če želite prebrati naš članek o metodah izračuna VBA)

Takole bi lahko izgledalo znotraj makra:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Application.Calculation = xlPriročnik'Naredi kaj'Ponovno izračunajIzračunaj'Naredi več stvariApplication.Calculation = xlAutomaticEnd Sub

Nastavitve VBA - Koda za pospešitev

Če je vaš cilj pospešiti kodo, razmislite o prilagoditvi teh drugih nastavitev:

Onemogočanje posodabljanja zaslona lahko močno vpliva na hitrost:

1 Application.ScreenUpdating = Napačno

Izklop vrstice stanja bo prav tako naredil majhno razliko:

1 Application.DisplayStatusBar = False

Če vaš delovni zvezek vsebuje dogodke, morate dogodke onemogočiti tudi na začetku postopkov (za pospešitev kode in preprečevanje neskončnih zank!):

1 Application.EnableEvents = False

Nazadnje, kodo VBA lahko upočasnite, ko Excel poskuša znova izračunati prelome strani (Opomba: ne bodo vplivali na vse postopke). Če želite izklopiti DisplayPageBreaks, uporabite to vrstico kode:

1 ActiveSheet.DisplayPageBreaks = False

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave