Opdatering af VBA-skærm - Fremskynde koden kører processen

Indholdsfortegnelse

Opdatering af Excel VBA-skærm

VBA-skærmopdatering er en egenskab, der bruges til at undgå eller forhindre distraktionsblink, mens du kører koden og gøre det hurtigt ved at deaktivere skærmopdatering. Vi kan slukke for opdateringen af ​​skærmen ved at indstille denne egenskab som falsk.

Ofte kan vi føle, at excel-skærmen bliver skør, mens makroen kører, og vi bliver næsten frustrerede over det. Men hvordan håndterer vi disse situationer og får koden til at køre hurtigere end den sædvanlige langsomme ting?

Skærmopdatering er noget, vi kan bemærke, mens excel-makroen kører. Når opgaven udføres, kan vi bemærke, at vores skærm opdaterer værdierne, indtil makroen afslutter sin tildelte opgave. Når vores skærm flimrer eller opdateres, fører det til afmatningen af ​​excel-programmet og tager længere tid end normalt at fuldføre opgaven.

I VBA har vi en egenskab kaldet "ScreenUpdating", og vi indstiller denne egenskab til FALSE, så det fjerner processen med skærmopdatering, mens koden kører.

I denne artikel siger vi farvel til at se actiondrama på skærmen, mens koden kører. I dag får du din kode til at køre hurtigere og hurtigere end din normale tid.

Hvornår skal jeg bruge skærmopdateringsfunktion?

Antag at du er i tvivl om, hvornår du skal bruge denne teknik. Se på nedenstående punkter.

  • Når du løber gennem et stort antal celler.
  • Afsendelse af e-mails fra Excel VBA.
  • Skift mellem excel-projektmapper.
  • Åbning af nye projektmapper.

Hvordan bruges skærmopdateringsfunktion i VBA-kode?

Eksempel # 1 - Sluk for opdatering af skærm

Se f.eks. Nedenstående kode.

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) .Vælg celler (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount End Sub

Ovenstående har en indlejret VBA løkke at indsætte serienumre fra den første kolonne til 50 th søjlen og igen kommer tilbage og indsatsen serienummer startende fra 51 fra den anden række til 50 th søjlen.

Ligesom dette, vil det indsætte indtil den når den 50 th række.

Mens denne kode kører, kan du bemærke, at din skærm flimrer, og du kan ikke gøre noget bortset fra at se dette skøre øjeblik.

For at undgå alle disse kan vi tilføje Screen Updating til FALSE.

For at få adgang til skærmopdateringsfunktionen først skal vi få adgang til applikationsobjektet.

Som vi kan se med applikationsobjektet, har vi mange egenskaber og metoder. Så vælg Skærmopdatering fra IntelliSense-listen.

Bemærk: Du skal anvende Screen Updating-funktionen straks efter deklarationen af ​​variablerne.

Når du har valgt egenskaben Skærmopdatering, skal du sætte et lighedstegn (=).

Som vi kan se, to boolske værdier, dvs. FALSK & SAND.

For at stoppe skærmopdatering skal du indstille status til FALSK.

Når makroen nu begynder at køre, opdaterer den skærmopdateringsstatus til FALSK og fortsætter til næste linje.

Da makroeksekveret skærmopdatering til FALSE tillader det ikke, at skærmen opdateres, mens koden udfører sin opgave.

Eksempel 2 -

Indstil altid skærmopdatering til SAND i slutningen

Jeg har set mange mennesker indstille skærmopdateringen til FALSK, men glemte at sætte den tilbage til SAND i slutningen af ​​makroen.

Indstil altid skærmopdatering tilbage til SAND i slutningen af ​​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). Vælg celler (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount Application.ScreenUpdating = True End Sub

Interessante artikler...