Kapcsolja ki (vagy be) az automatikus számításokat - Példák a VBA kódokra

Amikor frissít egy cellaértéket, az Excel végigmegy a munkafüzet újraszámításán. Ha közvetlenül az Excelben dolgozik, azt szeretné, hogy ez az esetek 99,9% -ában megtörténjen (kivétel, ha rendkívül nagy munkafüzettel dolgozik). Ez azonban valóban lelassíthatja a VBA -kódot. Jó gyakorlat, ha a makrók elején manuálisra állítja a számításokat, a makrók végén pedig visszaállítja a számításokat. Ha újra kell számolnia a munkafüzetet, akkor manuálisan utasíthatja az Excel számítását.

Kapcsolja ki az automatikus számításokat

Az automatikus számítást egy makróval kikapcsolhatja, ha xlmanual értékre állítja. Használja a következő VBA kódot:

1 Application.Calculation = xlManual

Kapcsolja be újra az automatikus számításokat

Az automatikus számítás bekapcsolása az xlAutomatic beállítással:

1 Alkalmazás. Számítás = xlAutomatikus

Javaslom, hogy az eljárás legelején tiltsa le az automatikus számításokat, és a végén engedélyezze újra az automatikus számításokat. Így fog kinézni:

Példa az automatikus számítások makró letiltására

12345678 Részautomatikus_számlázási_példa ()Application.Calculation = xlManual'Csinálj valamitAlkalmazás. Számítás = xlAutomatikusEnd Sub

Kézi számítás

Ha az automatikus számítások le vannak tiltva, használhatja a Kiszámítja parancs az Excel újraszámítására:

1 Kiszámítja

Azt is mondhatja az Excelnek, hogy csak egy munkalapot számítson újra:

1 Munkalapok ("lap1"). Számolja ki

Azt is mondhatja a VBA -nak, hogy számoljon át csak egy tartományt (kattintson a VBA számítási módszerekről szóló cikkünk elolvasásához)

Így nézhet ki ez a makró belsejében:

12345678910111213 Automatikus_alkalmazások_minta_manuális_számítás ()Application.Calculation = xlManual'Csinálj valamit'ÚjraszámításKiszámítja'Csinálj több dolgotAlkalmazás. Számítás = xlAutomatikusEnd Sub

VBA beállítások - Gyorsítási kód

Ha a célja a kód felgyorsítása, akkor fontolja meg a következő beállítások módosítását is:

A képernyőfrissítés letiltása hatalmas különbséget jelenthet a sebességben:

1 Application.ScreenUpdating = Hamis

Az állapotsor kikapcsolása szintén kis különbséget jelent:

1 Application.DisplayStatusBar = Hamis

Ha a munkafüzet eseményeket tartalmaz, akkor az eljárások elején is tiltsa le az eseményeket (a kód felgyorsítása és a végtelen ciklusok megelőzése érdekében):

1 Application.EnableEvents = Hamis

Végül a VBA-kód lelassulhat, amikor az Excel megpróbálja újra kiszámítani az oldaltöréseket (Megjegyzés: nem minden eljárás lesz hatással). A DisplayPageBreaks kikapcsolásához használja ezt a kódsort:

1 ActiveSheet.DisplayPageBreaks = Hamis

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave