Stäng av skärmuppdatering - exempel på VBA -kod

Lika coolt som det ser ut när ditt VBA -makro manipulerar skärmen, kan du hjälpa ditt makro att springa snabbare om du stänger av (inaktiverar) ScreenUpdating.

Inaktivera ScreenUpdating

1. För att inaktivera ScreenUpdating, i början av koden, lägg den här raden:

1 Application.ScreenUpdating = Falskt

Aktivera skärmuppdatering

2. För att återaktivera ScreenUpdating, i slutet av koden, lägg den här raden:

1 Application.ScreenUpdating = True

Exempel på VBA -skärmuppdatering

Din procedur kommer då att se ut så här:

1234567891011 Sub ScreenUpdating_Example ()Application.ScreenUpdating = Falskt'Göra någontingOmråde ("a1"). Kopieringsintervall ("b1")Område ("a2"). Kopieringsintervall ("b2")Område ("a3"). Kopieringsintervall ("b3")Application.ScreenUpdating = TrueAvsluta Sub

Skärmuppdatering Uppdatera

Om du inaktiverar ScreenUpdating kommer din VBA -kod att köra MYCKET snabbare, men det kommer också att få ditt arbete att se mer professionellt ut. Slutanvändare vill vanligtvis inte se åtgärderna bakom kulisserna i dina förfaranden (särskilt när proceduren går långsamt). Du kanske inte heller vill att slutanvändare ska se funktionen bakom kulisserna (t.ex. dolda kalkylblad). Jag rekommenderar att du inaktiverar (och återaktiverar) ScreenUpdating i praktiskt taget alla dina procedurer.

Det finns dock vissa tillfällen när du vill att skärmen ska uppdateras. För att uppdatera skärmen måste du tillfälligt slå på ScreenUpdating (det finns inget kommando ”uppdatera” på skärmen):

123 Application.ScreenUpdating = True'Göra någontingApplication.ScreenUpdating = Falskt

VBA -inställningar - påskynda koden

Det finns flera andra inställningar att spela med för att förbättra din kodhastighet.

Inaktivering av automatiska beräkningar kan göra en STOR skillnad i hastighet:

1 Application.Calculation = xlManual

Inaktivering av statusfältet kommer också att göra en liten skillnad:

1 Application.DisplayStatusBar = Falskt

Om din arbetsbok innehåller händelser bör du vanligtvis inaktivera händelser i början av din procedur:

1 Application.EnableEvents = Falskt

Sist kan din VBA-kod bromsas när Excel försöker beräkna sidbrytningar igen (Obs! Alla procedurer påverkas inte). Använd denna kodrad för att inaktivera visning av sidbrytningar:

1 ActiveSheet.DisplayPageBreaks = Falskt

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave