VBA-schermupdate - Het coderingsproces versnellen

Inhoudsopgave

Excel VBA-schermupdate

VBA-schermupdate is een eigenschap die wordt gebruikt om afleidingsflitsen tijdens het uitvoeren van de code te voorkomen of te voorkomen en om het snel te maken door Schermupdate uit te schakelen. We kunnen het bijwerken van het scherm uitschakelen door deze eigenschap als false in te stellen.

Vaak voelen we dat het Excel-scherm gek wordt terwijl de macro wordt uitgevoerd, en we raken daardoor bijna gefrustreerd. Maar hoe gaan we om met deze situaties en zorgen we ervoor dat de code sneller werkt dan normaal?

Schermupdates is iets dat we kunnen opmerken terwijl de Excel-macro wordt uitgevoerd. Wanneer de taak wordt uitgevoerd, kunnen we zien dat ons scherm de waarden bijwerkt totdat de macro de toegewezen taak voltooit. Terwijl ons scherm flikkert of ververst, leidt dit tot vertraging van het Excel-programma en duurt het langer dan normaal om de taak te voltooien.

In VBA hebben we een eigenschap met de naam "ScreenUpdating" en we stellen deze eigenschap in op FALSE, zodat het proces van schermupdate wordt geëlimineerd terwijl de code wordt uitgevoerd.

In dit artikel nemen we afscheid van het kijken naar actiedrama op het scherm terwijl de code wordt uitgevoerd. Vandaag laat u uw code sneller en sneller werken dan uw gebruikelijke tijd.

Wanneer de functie voor schermupdate gebruiken?

Stel dat u twijfelt wanneer u deze techniek moet gebruiken. Kijk naar de onderstaande punten.

  • Wanneer u een groot aantal cellen doorloopt.
  • E-mails verzenden vanuit Excel VBA.
  • Schakelen tussen Excel-werkmappen.
  • Nieuwe werkmappen openen.

Hoe de functie voor het bijwerken van schermen in VBA-code te gebruiken?

Voorbeeld # 1 - Schakel schermupdate uit

Kijk bijvoorbeeld naar de onderstaande code.

Code:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 Voor RowCount = 1 tot 50 Voor ColumnCount = 1 tot 50 MyNumber = MyNumber + 1 Cellen (RowCount, ColumnCount) .Selecteer Cellen (RowCount, ColumnCount) .Value = MyNumber Volgende ColumnCount Volgende RowCount End Sub

Bovenstaande heeft een geneste lus VBA serienummers invoegen uit de eerste kolom op de 50 ste kolom weer terugkomt en insert serienummer vanaf 51 uit de tweede rij naar de 50 ste kolom.

Op deze manier zal inbrengt tot 50 bereikt ste rij.

Terwijl deze code wordt uitgevoerd, kunt u uw scherm flikkeren en kunt u niets anders doen dan dit gekke moment bekijken.

Om al deze problemen te vermijden, kunnen we Screen Updating toevoegen aan FALSE.

Om eerst toegang te krijgen tot de functie Schermupdate, hebben we toegang tot het toepassingsobject nodig.

Zoals we kunnen zien met het Application-object, hebben we veel eigenschappen en methoden. Selecteer dus Screen Updating in de IntelliSense-lijst.

Opmerking: u moet de functie Screen Updating onmiddellijk toepassen na de declaratie van de variabelen.

Nadat u de eigenschap Screen Updating hebt geselecteerd, plaatst u een gelijkteken (=).

Zoals we kunnen zien, zijn er twee Booleaanse waarden, namelijk FALSE & TRUE.

Om het updaten van het scherm te stoppen, stelt u de status in op FALSE.

Nu de macro als eerste begint te lopen, wordt de updatestatus van het scherm bijgewerkt naar FALSE en doorgaan naar de volgende regel.

Omdat de macro Screen Updating heeft uitgevoerd naar FALSE, kan het scherm niet worden bijgewerkt terwijl de code zijn taak uitvoert.

Voorbeeld # 2 -

Stel Schermupdate altijd in op TRUE aan het einde

Ik heb veel mensen de schermupdate op FALSE zien zetten, maar vergaten het aan het einde van de macro weer op WAAR in te stellen.

Zet de schermupdate altijd weer op TRUE aan het einde van de macro.

Code:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 Voor RowCount = 1 tot 50 Voor ColumnCount = 1 tot 50 MyNumber = MyNumber + 1 Cellen (RowCount, ColumnCount) .Selecteer Cellen (RowCount, ColumnCount) .Value = MyNumber Volgende ColumnCount Volgende RowCount Application.ScreenUpdating = True End Sub

Interessante artikelen...