VBA DoEvents

Excel VBA DoEvents-functie

Met behulp van VBA DoEvents kunnen we de code op de achtergrond laten draaien en tegelijkertijd ook met Excel en andere applicatiesoftware werken. DoEvents stelt ons niet alleen in staat om met andere software te werken, maar we kunnen ook de uitvoering van de code onderbreken.

DoEvents-functie geeft de controle over aan het besturingssysteem van de computer waaraan we werken.

Hoe gebruik je de DoEvents-functie?

Een grote hoeveelheid VBA-code is vereist als de vereiste enorm is. In die gevallen blijft Excel enige tijd hangen en stopt het zelfs soms niet meer.

U kunt deze VBA DoEvents Excel-sjabloon hier downloaden - VBA DoEvents Excel-sjabloon

Kijk voor een voorbeeld naar de onderstaande code.

Code:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i Next i End Sub 

De bovenstaande code voegt serienummers in van 1 tot 100000. Het zal gemakkelijk meer dan een minuut duren om de taak uit te voeren. Tijdens de uitvoering blijft Excel geruime tijd hangen om de taak te voltooien. Gedurende deze tijd geeft Excel het bericht weer als "Excel reageert niet".

Bovendien hebben we geen toegang tot het werkblad waaraan we werken. Dit is frustrerend, en hoe zorgen we ervoor dat het Excel-werkblad beschikbaar is om te werken terwijl de code achter het scherm wordt uitgevoerd?

Dit kan worden bereikt door een VBA DoEvents-functie toe te voegen .

Code:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

Op het moment dat we de functie DoEvents in code toevoegen, hebben we toegang tot het Excel-werkblad.

Van bovenaf kunnen we zien dat de code wordt uitgevoerd, maar we hebben toegang tot het werkblad.

Onderbreek het uitvoeren van de code

Als de code achter het scherm wordt uitgevoerd, kunnen we rijen en kolommen toevoegen en dezelfde verwijderen, we kunnen de naam van het blad wijzigen en we kunnen ook veel andere dingen doen. Op het moment dat we DoEvents toevoegen, wordt de vba-code snel uitgevoerd en kunnen we ervan uitgaan dat de genoemde taak voor zichzelf wordt uitgevoerd.

  • Een van de gevaren van de DoEvents-functie is dat wanneer we tussen werkbladen of werkmappen wisselen, deze de actieve bladwaarden overschrijven.
  • Een ander gevaar is dat als we een waarde in de cel invoeren, de uitvoering van de code stopt en ons niet eens op de hoogte stelt.
Let op : Ondanks bovenstaande gevaren van DoEvents is het toch een handige functie. We kunnen DoEvents gebruiken als onderdeel van het foutopsporingsproces wanneer we proberen om bugs van de code die we hebben geschreven op te lossen.