Excel VBA DoEvents-Funktion

Wenn wir große Codes schreiben, geraten wir immer in die Falle von VBA. Wenn der Code groß ist, benötigt VBA seine eigene Zeit, um den ausgeführten und ausgeführten Prozess abzuschließen. Dies kann zwischen einer Minute und mehreren Minuten dauern. Dies ist der Zeitrahmen, in dem alle irritiert werden. Und wir können in dieser Zeit nichts anderes tun. Um dies zu vermeiden, haben wir in VBA eine Funktion namens DoEvents. Mithilfe von DoEvents können wir den Code im Hintergrund ausführen und gleichzeitig auch andere Dinge erledigen. Wir können nicht nur an anderen Tools oder Software arbeiten, sondern auch den Code unterbrechen oder zwischen den Ausführungsvorgängen anhalten.

Sobald wir DoEvents in den Code eingeben, haben wir neben VBA auch die Kontrolle über die Arbeit, die wir erledigen möchten. Das Gute an DoEvents ist, dass es keine Syntax zum Schreiben gibt. Wir können Doevents direkt dort platzieren, wo wir die Kontrolle über VBA übernehmen und die Aufgaben gemäß unseren Anforderungen ausführen möchten.

Verwendung der DoEvents-Funktion in Excel VBA

Im Folgenden sind die verschiedenen Beispiele für die Verwendung der DoEvents-Funktion in Excel unter Verwendung von VBA-Code aufgeführt.

Sie können diese VBA DoEvents Excel-Vorlage hier herunterladen - VBA DoEvents Excel-Vorlage

Excel VBA DoEvents - Beispiel # 1

Um DoEvents ausführen zu können, benötigen wir eine große Menge an Daten, mit denen wir sehen können, wie der Code unterbrochen wird. Wir werden also eine Schleife verwenden, in der die Zahlen angewendet werden, bis der Code vollständig ist. Führen Sie dazu die folgenden Schritte aus:

Schritt 1: Öffnen Sie ein Modul in VBA über die Menüregisterkarte Einfügen (siehe unten).

Schritt 2: Schreiben Sie die Unterprozedur von VBA DoEvents oder wählen Sie einen beliebigen Namen aus, um den Code gemäß unseren Anforderungen zu definieren.

Code:

 Sub VBA_DoEvents () End Sub 

Schritt 3: Definieren Sie nun eine Variable in einem beliebigen Namen mit den Datentypen Long. Der Datentyp sollte als Long betrachtet werden, da wir eine beliebige Datenlänge verwenden, die unter Berücksichtigung von Integer nicht möglich ist.

Code:

 Sub VBA_DoEvents () Dim A As Long End Sub 

Schritt 4: Öffnen Sie nun eine For-Next-Schleife, in der die Bedingungen festgelegt werden.

Code:

 Sub VBA_DoEvents () Dimme A so lange wie für Next A End Sub 

Schritt 5: Betrachten Sie den Bereich einer Zahl Ihrer Wahl, dessen Implementierung erkennbar ist. Hier nehmen wir den Bereich 1 bis 2000 in der definierten Variablen A.

Code:

 Sub VBA_DoEvents () A dimmen, solange A = 1 bis 20000 Next A End Sub 

Schritt 6: Nachdem wir den Zahlenbereich definiert haben, wählen wir den Zellenbereich aus, in dem die oben ausgewählten Zahlenänderungen angezeigt werden. Angenommen, der Zellenbereich reicht von A1 bis A5. Dies kann auch eine einzelne Zelle sein.

Code:

 Sub VBA_DoEvents () A dimmen, solange A = 1 bis 20000 ("A1: A5"). Wert = A Next A End Sub 

Schritt 7: Führen Sie nun den Code aus, indem Sie auf die Schaltfläche Abspielen unterhalb der Menüleiste klicken.

Wir werden sehen, dass der Code durch Drucken der Zahlen von 1 bis 20000 vervollständigt wurde, aber wir konnten ihn nicht stoppen.

Schritt 8: Um die vollständige Kontrolle über den Code zu erhalten, wenden Sie DoEvents nach den Schleifenbedingungen an, wie unten gezeigt.

Code:

 Sub VBA_DoEvents () A dimmen, solange A = 1 bis 20000 reicht ("A1: A5"). Value = A DoEvents Next A End Sub 

Schritt 9: Führen Sie nun den Code erneut aus. Und zu diesem Zeitpunkt versuchen wir, den Code zu stoppen, indem wir auf die Stopp-Schaltfläche klicken. Wir werden feststellen, dass der Code zwischen den Prozessen gestoppt wird, bevor der Test von 20000 abgeschlossen ist.

Excel VBA DoEvents - Beispiel 2

Es gibt einen anderen Prozesstyp für die Implementierung von DoEvents. Aber dafür brauchen wir auch riesigen Code wie in Beispiel-1. Führen Sie dazu die folgenden Schritte aus:

Schritt 1: Schreiben Sie die Unterprozedur von VBA DoEvents wie unten gezeigt.

Code:

 Sub VBA_DoEvents2 () End Sub 

Schritt 2: Öffnen Sie direkt eine For-next-Schleife, ohne eine Variable zu definieren.

Code:

 Sub VBA_DoEvents2 () Für Next End Sub 

Schritt 3: Wählen Sie einen Nummernkreis aus, der ausgeführt werden soll. Der Bereich sei 1 bis 20000 wie in Beispiel-1.

Code:

 Sub VBA_DoEvents2 () Für A = 1 bis 20000 Next End Sub 

Schritt 4: Legen Sie nun direkt eine Arbeit für die Ausgabe ab. Nehmen wir an, die Ausgabe sieht wie folgt aus. Und der Wertebereich wird +1 des tatsächlichen Wertes sein.

Code:

 Sub VBA_DoEvents2 () Für A = 1 bis 20000 Output = Output + 1 Next End Sub 

Schritt 5: Wählen Sie nun den Bereich aus, in dem die Ausgabe angezeigt werden soll. Die Zelle sei A1.

Code:

 Sub VBA_DoEvents2 () Für A = 1 bis 20000 Output = Output + 1 Range ("A1"). Value = Output Next End Sub 

Schritt 6: Zuletzt werden wir DoEvents am Ende der For-Schleifenbedingung setzen.

Code:

 Sub VBA_DoEvents2 () Für A = 1 bis 20000 Output = Output + 1 Range ("A1"). Value = Output DoEvents Next End Sub 

Schritt 7: Führen Sie den Code durch Drücken der Taste F5 aus. Wir werden sehen, wir können alles tun, auch wenn der Code läuft. Zur Demonstration habe ich die Zellen B1 und C1 ausgewählt. Die Zahlen erreichten nur 4348, was deutlich unter dem von uns festgelegten Grenzwert liegt.

Schritt 8: Wenn wir die DoEvents entfernen und den Code ausführen, können wir nichts tun, bis der Code seinen Prozess abgeschlossen hat. Lassen Sie uns das auch sehen.

Code:

 Sub VBA_DoEvents2 () Für A = 1 bis 20000 Output = Output + 1 Range ("A1"). Value = Output Next End Sub 

Schritt 9: Führen Sie nun den Code erneut aus. Wie wir sehen konnten, wurde der Code nicht gestoppt, als wir versuchten, auf Stop zu klicken. Und die Wiedergabefunktion war immer noch eingeschaltet.

Vor- und Nachteile von Excel VBA DoEvents

  • Wir können im Hintergrund an jedem Tool oder jeder Datei arbeiten, während der VBA-Code parallel ausgeführt wird.
  • Die Verwendung von DoEvents hindert uns nicht daran, die gewünschte Arbeit zu leisten, wenn der Code ausgeführt wird.
  • Es überschreibt das Arbeitsblatt oder die Arbeitsmappe, wenn wir zwischen den verschiedenen Arbeitsblättern oder Arbeitsmappen wechseln.
  • Der Code stoppt, wenn wir die Zelle für einen Moment schreiben oder ändern, und wir werden nicht benachrichtigt.

Dinge, an die man sich erinnern sollte

  • Wenn wir etwas tun, ohne DoEvents anzuwenden, besteht die große Möglichkeit, dass der Code das System und die Datei zum Einfrieren bringt. Und dass wir entweder die Dateien wieder aufnehmen, sobald der Code vollständig ausgeführt ist, oder die Datei bei mehreren Klicks zum Absturz bringen.
  • Wir können die Veränderung im Prozess sehen, während wir gleichzeitig an der anderen Arbeit arbeiten.
  • Speichern Sie die Datei nach Fertigstellung des Codes im Excel-Format mit Makros, um einen Codeverlust zu vermeiden.
  • Versuchen Sie, den Code in einer riesigen und großen Menge von Codierungen anzuwenden. Dort werden wir die tatsächliche Implementierung und Verwendung sehen.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA DoEvents. Hier wird die Verwendung der DoEvents-Funktion in Excel mithilfe von VBA-Code zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Wie verwende ich StrConv in Excel VBA?
  2. Zahlen in Excel in Text konvertieren (Beispiele)
  3. VBA ByRef-Funktion (Beispiele mit Excel-Vorlage)
  4. Excel SUMIFS mit Datum | Excel-Vorlage

Kategorie: