VBA-skärmuppdatering - Påskynda kodkörningsprocessen

Innehållsförteckning

Excel VBA-skärmuppdatering

VBA Screen Updating är en egenskap som används för att undvika eller förhindra distraktionsblinkar när du kör koden och göra det snabbt genom att stänga av Screen Updating. Vi kan stänga av skärmuppdateringen genom att ställa in den här egenskapen som falsk.

Ofta kan vi känna att excel-skärmen blir galen medan makrot körs, och vi blir nästan frustrerade över det. Men hur hanterar vi dessa situationer och får koden att gå snabbare än den vanliga långsamma?

Skärmuppdatering är något vi kan märka när excel-makrot körs. När uppgiften körs kan vi märka att vår skärm uppdaterar värdena tills makrot avslutar sin tilldelade uppgift. När vår skärm flimrar eller uppfriskar leder det till avmattningen av excelprogrammet och det tar längre tid än vanligt att slutföra uppgiften.

I VBA har vi en egenskap som heter "ScreenUpdating" och vi ställer in den här egenskapen på FALSE så att den eliminerar processen med skärmuppdatering medan koden körs.

I den här artikeln kommer vi att säga adjö till att titta på actiondrama på skärmen medan koden körs. Idag kommer du att få din kod att gå snabbare och snabbare än din vanliga tid.

När ska skärmuppdateringsfunktionen användas?

Antag att du är osäker på när du ska använda den här tekniken. Titta på punkterna nedan.

  • När du går igenom ett stort antal celler.
  • Skicka e-post från Excel VBA.
  • Växla mellan Excel-arbetsböcker.
  • Öppna nya arbetsböcker.

Hur använder jag skärmuppdateringsfunktionen i VBA-koden?

Exempel nr 1 - Stäng av skärmuppdatering

Titta till exempel på koden nedan.

Koda:

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

Ovanstående har en kapslad VBA-slinga för att infoga serienummer från första kolumnen till den 50: e kolumnen och återkommer igen och infoga serienummer från 51 från andra raden till 50: e kolumnen.

Så här kommer den att sättas in tills den når 50: e raden.

Medan den här koden körs kan du märka att din skärm flimrar och du kan inte göra något förutom att titta på det här galna ögonblicket.

För att undvika alla dessa kan vi lägga till skärmuppdatering till FALSE.

För att komma åt funktionen Skärmuppdatering måste vi komma åt applikationsobjektet.

Som vi kan se med applikationsobjektet har vi många egenskaper och metoder. Så välj Skärmuppdatering från IntelliSense-listan.

Obs! Du måste tillämpa skärmuppdateringsfunktionen omedelbart efter deklarationen av variablerna.

När du har valt egenskapen Skärmuppdatering sätter du ett likhetstecken (=).

Som vi kan se, två booleska värden, dvs. FALSE & TRUE.

För att stoppa skärmuppdateringen, ställ in status till FALSE.

Nu när makroet börjar köra först kommer det att uppdatera skärmuppdateringsstatusen till FALSE och fortsätta till nästa rad.

Eftersom makroexekverad skärmuppdatering till FALSE tillåter den inte att skärmen uppdateras medan koden kör sin uppgift.

Exempel # 2 -

Ställ alltid in skärmuppdatering till SANT i slutet

Jag har sett många människor ställa in skärmuppdateringen till FALSE men glömde att ställa tillbaka den till SANT i slutet av makrot.

Ställ alltid in skärmuppdateringen på SANT i slutet av makrot.

Koda:

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älj celler (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount Application.ScreenUpdating = True End Sub

Intressanta artiklar...