Lülitage automaatsed arvutused välja (või sisse) - VBA koodi näited

Lahtri väärtuse värskendamisel läbib Excel töövihiku ümberarvutamise protsessi. Otse Excelis töötades soovite, et see juhtuks 99,9% juhtudest (erandiks on see, kui töötate äärmiselt suure töövihikuga). See võib aga teie VBA -koodi tõesti aeglustada. Hea tava on määrata arvutused makrode alguses käsitsi ja taastada arvutused makrode lõpus. Kui teil on vaja töövihik uuesti arvutada, saate käsu Excelil arvutada.

Lülitage automaatsed arvutused välja

Saate makro abil automaatse arvutamise välja lülitada, määrates selle väärtuseks xlmanual. Kasutage järgmist VBA koodi:

1 Application.Calculation = xlManual

Lülitage automaatsed arvutused uuesti sisse

Automaatse arvutamise sisselülitamiseks seadistusega xlAutomatic toimige järgmiselt.

1 Rakendus.Kalkulatsioon = xlAutomaatne

Soovitan keelata automaatsed arvutused kohe protseduuri alguses ja lubada automaatsed arvutused uuesti lõpus. See näeb välja selline:

Keela automaatsete arvutuste makro näide

12345678 Alam -automaatsed_näidised ()Application.Calculation = xlManual'Tee midagiRakendus.Kalkulatsioon = xlAutomaatneEnd Sub

Käsitsi arvutamine

Kui automaatsed arvutused on keelatud, saate kasutada Arvutama käsk sundida Excel uuesti arvutama:

1 Arvutama

Samuti saate Excelile öelda, et ta arvutaks ümber ainult üksiku töölehe.

1 Töölehed ("leht1"). Arvutage

Samuti võite öelda, et VBA arvutab ümber ainult vahemiku (klõpsake meie artikli lugemiseks VBA arvutusmeetodite kohta)

Makro sees võib see välja näha järgmine.

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Application.Calculation = xlManual'Tee midagi„Arvuta uuestiArvutama'Tehke rohkem asjuRakendus.Kalkulatsioon = xlAutomaatneEnd Sub

VBA seaded - kiirenduskood

Kui teie eesmärk on koodi kiirendada, peaksite kaaluma ka nende muude sätete kohandamist.

Ekraaniuuenduse keelamine võib kiiruses tohutult muuta:

1 Application.ScreenUpdating = Vale

Olekuriba väljalülitamisel on ka väike erinevus:

1 Application.DisplayStatusBar = Vale

Kui teie töövihik sisaldab sündmusi, peaksite toimingute alguses sündmused ka keelama (koodi kiirendamiseks ja lõputute silmuste vältimiseks!):

1 Application.EnableEvents = Vale

Lõpuks võib teie VBA-koodi aeglustada, kui Excel proovib lehekatkestusi uuesti arvutada (Märkus: see ei mõjuta kõiki protseduure). DisplayPageBreaks'i väljalülitamiseks kasutage järgmist koodirida:

1 ActiveSheet.DisplayPageBreaks = Vale

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave