VBA DoEvents

Excel VBA DoEvents-funktion

Med hjälp av VBA DoEvents kan vi få koden att köras i bakgrunden och samtidigt låta oss arbeta med excel och andra applikationsprogram. DoEvents tillåter oss inte bara att arbeta med annan programvara utan vi kan också avbryta körningen av koden.

DoEvents-funktionen överför kontrollen till operativsystemet på den dator vi arbetar med.

Hur använder jag DoEvents-funktionen?

En stor mängd VBA-kod krävs när kravet är stort. I sådana fall excel hänger och stannar en stund och till och med ibland inte svarar.

Du kan ladda ner denna VBA DoEvents Excel-mall här - VBA DoEvents Excel-mall

För ett exempel, se nedanstående kod.

Koda:

 Sub DoEvents_Example1 () Dim i så länge för i = 1 till 100000 intervall ("A1"). Värde = i Nästa i End Sub 

Ovanstående kod kommer att infoga serienummer från 1 till 100000. Det tar lätt mer än en minut att utföra uppgiften. Under körningen hänger excel under en lång tid för att slutföra uppgiften. Under denna tid visar excel meddelandet som “Excel svarar inte”.

Dessutom kan vi inte komma åt kalkylbladet vi arbetar med. Det här är en frustrerande sak, hur gör vi Excel-kalkylbladet tillgängligt för att fungera medan koden körs bakom skärmen.

Detta kan uppnås genom att lägga till en VBA DoEvents-funktion .

Koda:

 Sub DoEvents_Example1 () Dim i så länge för i = 1 till 100000 Range ("A1"). Värde = i DoEvents Nästa i End Sub 

I det ögonblick vi lägger till funktionen DoEvents i kod kan vi komma åt Excel-kalkylbladet.

Ovanifrån kan vi se att koden körs men vi kan komma åt kalkylbladet.

Avbryt kodkörningen

När koden körs bakom skärmen kan vi lägga till rader, kolumner och ta bort samma, vi kan byta namn på arket och vi kan också göra många andra saker. I det ögonblick vi lägger till DoEvents gör det att vba-koden körs snabbt och låter oss tappa att den nämnda uppgiften kör för sig själv.

  • En av farorna med DoEvents-funktionen är när vi byter kalkylblad eller arbetsböcker skriver den över de aktiva arkvärdena.
  • En annan fara är att om vi anger något värde i cellen avbryts kodkörningen och det meddelar inte ens oss.
Obs! Trots ovanstående faror med DoEvents är det fortfarande en praktisk funktion. Vi kan använda DoEvents som en del av felsökningsprocessen när vi försöker fixa fel i koden vi har skrivit.