Slå av skjermoppdatering - eksempler på VBA -kode

Så kult som det ser ut når du ser på din VBA -makro manipulere skjermen, kan du hjelpe makroen med å kjøre raskere hvis du slår av (deaktiverer) ScreenUpdating.

Deaktiver skjermoppdatering

1. For å deaktivere ScreenUpdating, sett denne linjen i begynnelsen av koden:

1 Application.ScreenUpdating = Falsk

Aktiver skjermoppdatering

2. For å aktivere ScreenUpdating igjen, sett denne linjen på slutten av koden:

1 Application.ScreenUpdating = True

Eksempel på VBA -skjermoppdatering

Fremgangsmåten din vil da se slik ut:

1234567891011 Sub ScreenUpdating_Example ()Application.ScreenUpdating = Falsk'Gjør noeOmråde ("a1"). Kopieringsområde ("b1")Område ("a2"). Kopieringsområde ("b2")Område ("a3"). Kopieringsområde ("b3")Application.ScreenUpdating = TrueSlutt Sub

Skjermoppdatering Oppdater

Hvis du deaktiverer ScreenUpdating, vil VBA -koden din kjøre MYE raskere, men det vil også få arbeidet ditt til å virke mer profesjonelt. Sluttbrukere vil vanligvis ikke se handlingene bak prosedyrene i prosedyrene dine (spesielt når prosedyren går tregt). Du vil kanskje ikke at sluttbrukerne skal se funksjonen bak kulissene (f.eks. Skjulte regneark). Jeg anbefaler å deaktivere (og re-aktivere) ScreenUpdating i praktisk talt alle prosedyrene dine.

Det er imidlertid noen ganger du vil at skjermen skal oppdateres. For å oppdatere skjermen må du midlertidig slå på ScreenUpdating igjen (det er ingen kommando for oppdatering av skjermen):

123 Application.ScreenUpdating = True'Gjør noeApplication.ScreenUpdating = Falsk

VBA -innstillinger - Fremskynde koden

Det er flere andre innstillinger du kan leke med for å forbedre kodehastigheten.

Deaktivering av automatiske beregninger kan gjøre en STOR forskjell i hastighet:

1 Application.Calculation = xlManual

Deaktivering av statuslinjen vil også gjøre en liten forskjell:

1 Application.DisplayStatusBar = Falsk

Hvis arbeidsboken din inneholder hendelser, bør du vanligvis deaktivere hendelser i begynnelsen av prosedyren:

1 Application.EnableEvents = Falsk

Sist kan VBA-koden din senkes når Excel prøver å beregne sideskift på nytt (Merk: ikke alle prosedyrer påvirkes). For å deaktivere visning av sideskift, bruk denne kodelinjen:

1 ActiveSheet.DisplayPageBreaks = Falsk

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave