Lülitage ekraani värskendamine välja - VBA koodi näited

Nii lahe kui see ka välja näeb, vaadates, kuidas teie VBA makro ekraaniga manipuleerib, saate aidata oma makro kiiremal töötamisel, kui lülitate ScreenUpdating välja (keelate).

Keela ScreenUpdating

1. ScreenUpdatingi keelamiseks sisestage oma koodi algusesse see rida:

1 Application.ScreenUpdating = Vale

Luba ekraaniuuendus

2. ScreenUpdating uuesti lubamiseks sisestage oma koodi lõppu see rida:

1 Application.ScreenUpdating = Tõsi

VBA ekraaniuuenduse näide

Seejärel näeb teie protseduur välja selline:

1234567891011 Alamekraani värskendamise_näide ()Application.ScreenUpdating = Vale'Tee midagiVahemik ("a1"). Kopeeri vahemik ("b1")Vahemik ("a2"). Kopeeri vahemik ("b2")Vahemik ("a3"). Kopeeri vahemik ("b3")Application.ScreenUpdating = TõsiEnd Sub

Ekraani värskendamine Värskenda

ScreenUpdatingi keelamine muudab teie VBA -koodi PALJU kiiremaks, kuid muudab teie töö ka professionaalsemaks. Lõppkasutajad ei taha tavaliselt näha teie protseduuride kulisside taga toiminguid (eriti kui protseduur kulgeb aeglaselt). Samuti ei pruugi te soovida, et lõppkasutajad näeksid kulisside taga funktsioone (nt peidetud töölehed). Soovitan ekraaniuuenduse keelata (ja uuesti lubada) peaaegu kõigis teie protseduurides.

Siiski on aegu, mil soovite ekraani värskendada. Ekraani värskendamiseks peate ajutiselt uuesti sisse lülitama ScreenUpdating (ekraani värskendamise käsku pole):

123 Application.ScreenUpdating = Tõsi'Tee midagiApplication.ScreenUpdating = Vale

VBA seaded - kiirenduskood

Koodikiiruse parandamiseks tuleb mängida veel mitmete sätetega.

Automaatarvutuste väljalülitamine võib tohutult muuta kiirust:

1 Application.Calculation = xlManual

Olekuriba keelamisel on ka väike erinevus:

1 Application.DisplayStatusBar = Vale

Kui teie töövihik sisaldab sündmusi, peaksite tavaliselt protseduuri alguses sündmused keelama.

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). Lehevahetuste kuvamise keelamiseks kasutage seda koodirida:

1 ActiveSheet.DisplayPageBreaks = Vale

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave