VBA-skjermoppdatering - Fremskynde prosessen for kjøring av koden

Innholdsfortegnelse

Excel VBA-skjermoppdatering

VBA Screen Updating er en egenskap som brukes til å unngå eller forhindre distraheringsblink mens du kjører koden, og gjøre det raskt ved å slå av Screen Updating. Vi kan slå av skjermoppdateringen ved å sette denne egenskapen som falsk.

Ofte kan vi føle at excel-skjermen blir gal mens makroen kjører, og vi blir nesten frustrerte over det. Men hvordan takler vi disse situasjonene og får koden til å kjøre raskere enn den vanlige tregt?

Skjermoppdatering er noe vi kan legge merke til mens excel-makroen kjører. Når oppgaven utføres, kan vi legge merke til at skjermen oppdaterer verdiene til makroen fullfører den tildelte oppgaven. Når skjermen vår flimrer eller forfrisker, fører det til avmattelsen i excel-programmet og tar lengre tid enn vanlig å fullføre oppgaven.

I VBA har vi en egenskap som heter "ScreenUpdating", og vi setter denne egenskapen til FALSE slik at den vil eliminere prosessen med skjermoppdatering mens koden kjører.

I denne artikkelen vil vi si farvel med å se på actiondrama på skjermen mens koden kjører. I dag vil du få koden din til å kjøre raskere og raskere enn vanlig tid.

Når skal du bruke skjermoppdateringsfunksjonen?

Anta at du er i tvil når du skal bruke denne teknikken. Se på punktene nedenfor.

  • Når du går gjennom et stort antall celler.
  • Sende e-post fra Excel VBA.
  • Bytte mellom excel arbeidsbøker.
  • Åpne nye arbeidsbøker.

Hvordan bruker jeg skjermoppdateringsfunksjon i VBA-kode?

Eksempel nr. 1 - Slå av skjermoppdatering

Se for eksempel på koden nedenfor.

Kode:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 For RowCount = 1 To 50 For ColumnCount = 1 To 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount) .Velg celler (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount End Sub

Den ovenfor har en nestet VBA sløyfe for å sette inn serienummer fra den første kolonne til den 50 th kolonne, og igjen kommer tilbake og innsatsen serienummeret ved å starte fra 51 fra den andre raden til 50 th kolonnen.

Som dette, vil det sette til den når den 50 th rad.

Mens denne koden kjører, kan du legge merke til at skjermen flimrer, og du kan ikke gjøre noe bortsett fra å se på dette galne øyeblikket.

For å unngå alle disse, kan vi legge til Screen Updating til FALSE.

For å få tilgang til skjermoppdateringsfunksjonen først, må vi få tilgang til applikasjonsobjektet.

Som vi kan se med Application-objektet, har vi mange egenskaper og metoder. Så velg Skjermoppdatering fra IntelliSense-listen.

Merk: Du må bruke funksjonen Skjermoppdatering umiddelbart etter erklæringen av variablene.

Etter å ha valgt egenskapen Skjermoppdatering, sett et likhetstegn (=).

Som vi kan se, to boolske verdier, dvs. FALSE & TRUE.

For å stoppe skjermoppdatering, sett statusen til FALSE.

Nå som makroen begynner å kjøre først, vil den oppdatere status for skjermoppdatering til FALSE og fortsette til neste linje.

Siden makroutført skjermoppdatering til FALSE, vil det ikke tillate at skjermen oppdateres mens koden utfører oppgaven.

Eksempel 2 -

Still alltid skjermoppdatering til SANN på slutten

Jeg har sett mange mennesker sette skjermoppdateringen til FALSE, men glemte å sette den tilbake til SANT på slutten av makroen.

Still alltid Skjermoppdatering tilbake til SANT på slutten av makroen.

Kode:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 For RowCount = 1 To 50 For ColumnCount = 1 To 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount) .Velg celler (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount Application.ScreenUpdating = True End Sub

Interessante artikler...