VBA-Wartefunktion - Wie verwende ich die Excel VBA-Wartemethode?

Inhaltsverzeichnis

Excel VBA-Wartefunktion

VBA Wait ist eine integrierte Funktion, mit der die Ausführung des Codes für einen bestimmten Zeitraum angehalten wird. Sie ist der Funktion in einem Schlafbefehl sehr ähnlich und zum Anhalten eines Codes, den wir mit der application.wait-Methode verwenden.

Einige der Codes erfordern einige Zeit, bevor mit der nächsten Codezeile fortgefahren werden kann, da andere Aufgaben ausgeführt werden müssen. In diesen Fällen müssen wir die Ausführung des Codes stoppen und einige Zeit pausieren, um dann mit der Ausführung fortzufahren. Wir können den auszuführenden Code auf zwei Arten anhalten, wobei die erste die "Sleep" -Methode und die zweite die "Wait" -Methode ist. In unserem früheren Artikel haben wir die Methode "VBA Sleep" zum Anhalten des VBA-Codes erläutert.

"Warten", wie der Name selbst sagt, enthält der auszuführende Makrocode für einen bestimmten Zeitraum. Mit dieser Methode müssen wir die Zeit angeben, zu der unser Code pausieren soll. Wir werden als nächstes Beispiele sehen.

Die Syntax der WAIT-Funktion lautet wie folgt.

Wir müssen angeben, wie lange unser Code pausieren soll. Wie Sie am Ende sehen können, heißt es Boolean. Dies bedeutet, dass das Ergebnis als Boolesche Werte zurückgegeben wird, dh TRUE oder FALSE.

Bis die angegebene Zeit eintrifft, heißt es FALSE, und in dem Moment, in dem die angegebene Zeit eintrifft, wird TRUE zurückgegeben.

Dies unterscheidet sich von der SLEEP-Funktion, da WAIT eine integrierte Funktion ist, bei der SLEEP eine Windows-Funktion ist. Bevor wir auf die SLEEP-Funktion zugreifen, müssen wir den folgenden Code oben im Modul erwähnen. Aber WAIT erfordert dies nicht.

Code:

#Wenn VBA7 dann öffentlich deklariert PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'Für 64-Bit-Systeme #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' Für 32-Bit-Systeme End If

Beispiele für die Verwendung der Excel VBA-Wartefunktion

Beispiel 1

Angenommen, Sie arbeiten an einem Excel-Mittag um 14:30:00 Uhr und möchten, dass Ihr Code angehalten wird, bis die Zeit 14:40:00 Uhr wird. Sie können den folgenden Code verwenden.

Code:

Sub Wait_Example1 () Application.Wait "14:40:00" End Sub

Der Code verhindert, dass Ihr Excel funktioniert, bis die Zeit in Ihrem Betriebssystem 14:40:00 Uhr erreicht. Die Bereitstellung einer solchen Zeit ist gefährlich, da wir nicht immer ab 14:30:00 Uhr arbeiten. Es variiert ständig.

Angenommen, Sie führen den Code aus. Sie möchten 2 Minuten warten, wie verweisen Sie in Ihrem Code darauf?

Daher können wir die VBA NOW-Funktion mit der TIME VALUE-Funktion verwenden, um die angegebene Zeit ab der aktuellen Zeit einzugeben.

Um Sie daran zu erinnern, gibt die Funktion NOW () das aktuelle Datum und die aktuelle Uhrzeit gemäß Ihrem Computersystem zurück. Die TIMEVALUE-Funktion repräsentiert die Zeit von 00:00:00 bis 23:59:59, dh 23:59:59 Uhr im 24-Stunden-Format. Es konvertiert den Zeichenfolgenwert in einen Zeitwert.

Zum Beispiel bedeutet JETZT () + ZEITWERT (00:02:30) Aktuelle Zeit + 2 Min. 30 Sek.

Wenn die aktuelle Zeit 14:25:30 ist, wird es 14:28:00.

Um die Ausführung Ihres Codes von der aktuellen Zeit bis zu den nächsten 10 Minuten zu stoppen oder anzuhalten, können Sie den folgenden Code verwenden.

Code:

Sub Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub

Es ist wichtig, eine NOW () - Funktion für eine genaue Pause zu verwenden. Andernfalls besteht die Möglichkeit, dass Ihre Excel-Arbeitsmappe bis Mitternacht angehalten wird. Wir können die Pausenmethode jedoch jederzeit durch Drücken der Esc- Taste oder der Break-Taste verlassen.

Beispiel 2

Warten Sie jedes Mal, wenn die Schleife ausgeführt wird, 10 Sekunden

Die Wartemethode wird bei Schleifen gut verwendet. Es gibt Situationen, in denen Sie möglicherweise jedes Mal, wenn die Schleife ausgeführt wird, 10 Sekunden warten müssen. Schauen Sie sich zum Beispiel die folgenden Daten an.

Um Profit = (Sales - Cost) zu berechnen, möchten Sie eine Schleife erstellen und nach jeder Schleife 10 Sekunden warten, um zu überprüfen, ob das Ergebnis korrekt ist oder nicht. Der folgende Code wird das tun.

Code:

Sub Wait_Example3 () Dim k As Integer Für k = 2 bis 9 Zellen (k, 4) .Value = Zellen (k, 2) - Zellen (k, 3) Application.Wait (Now () + TimeValue ("00:00 : 10 ")) Weiter k End Sub

Dieser Code berechnet den Gewinn zeilenweise. Nach Abschluss der ersten Zeile wird 10 Sekunden gewartet, bevor die nächste Zeile berechnet wird.

VBA Sleep vs. VBA Wait

VBA SLEEP VBA WAIT
Es ist keine in VBA integrierte Funktion, benötigt einen speziellen Code, um auf diese Funktion zuzugreifen. Es handelt sich um eine in VBA integrierte Funktion, für deren Zugriff kein spezieller Code erforderlich ist.
Der Schlaf benötigt Millisekunden als Zeitrahmen. Das Warten erfordert einen regelmäßigen Zeitrahmen.
Wir können den Code in Millisekunden verzögern. Wir können nur in ganzen Sekunden verzögern.

Interessante Beiträge...