VBA-Pause

Unterbrechen Sie die Ausführung des VBA-Codes

VBA-Pause wird verwendet, um die Ausführung des Codes für eine bestimmte Zeit anzuhalten und um einen Code in VBA anzuhalten, verwenden wir die application.wait-Methode.

Wenn wir große VBA-Projekte erstellen, nachdem wir etwas ausgeführt haben, müssen wir möglicherweise einige Zeit warten, um andere Aufgaben auszuführen. Wie halten wir in solchen Szenarien den Makrocode an, um unsere Aufgabe zu erledigen? Wir können den VBA-Code für einen bestimmten Zeitraum anhalten, indem wir zwei Funktionen verwenden. Diese Funktionen sind "Warten" und "Ruhezustand".

Wie kann ich Code mit der Wartemethode anhalten?

"Warten" ist die Funktion, die wir in VBA verwenden, um das Makro für eine bestimmte Zeitspanne laufen zu lassen. Wenn Sie diese Funktion anwenden, müssen Sie angeben, bis zu welcher Zeit unser Code warten soll.

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

Wenn Sie beispielsweise den Code um 13:00:00 Uhr ausführen und die Zeit als "13:15:00" angeben, wird das Makro 15 Minuten lang ausgeführt.

Schauen Sie sich nun das Argument der WAIT-Funktion in VBA an.

Im Zeitargument müssen wir angeben, zu welcher Zeit unser Code pausieren oder warten soll.

Schauen Sie sich zum Beispiel den folgenden VBA-Code an.

Code:

 Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " Zu VBA "End Sub 

Denken Sie daran, dass meine Systemzeit beim Ausführen dieses Codes 13:00:00 ist. Sobald ich den Code ausführe, werden die ersten beiden Zeilen ausgeführt, d. H.

Bereich ("A1"). Wert = "Hallo" & Bereich ("A2"). Wert = "Willkommen"

Wenn Sie sich jedoch die nächste Zeile ansehen, heißt dort Application.Wait („13:15:00“). Nach dem Ausführen dieser Zeilenaufgaben wird mein Makro für 15 Minuten angehalten, dh ab 13:00:00 wartet es bis zu meinem System Zeit erreicht 13:15:01.

Sobald meine Systemzeit diese Zeit erreicht hat, werden die verbleibenden Codezeilen ausgeführt.

Bereich ("A3"). Wert = "Zu VBA"

Dies ist jedoch nicht die beste Methode, um den Pausencode zu üben. Nehmen wir an, Sie führen den Code zu unterschiedlichen Zeiten aus. Dann müssen wir die NOW VBA-Funktion mit der TIME VALUE-Funktion verwenden.

Jetzt gibt die Funktion das aktuelle Datum und die aktuelle Uhrzeit gemäß dem System zurück, an dem wir arbeiten.

TIME Value- Funktion hält die Zeit von 00:00:00 bis 23:59:29.

Ok, nehmen wir an, wir müssen den Code 10 Minuten lang anhalten, wenn wir den Code ausführen, dann können wir den folgenden Code verwenden.

Code:

 Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Value =" To VBA "End Sub 

Dies ähnelt dem vorherigen Code, aber der einzige Unterschied besteht darin, dass wir die Funktion NOW & TIME VALUE hinzugefügt haben.

Immer wenn wir diesen Code ausführen, wird die Ausführung 10 Minuten lang angehalten oder angehalten.

Wie kann ich den VBA-Code mit der Sleep-Methode anhalten?

Schlaf ist eine komplizierte Funktion in VBA, da es sich nicht um eine integrierte Funktion handelt. Da es nicht integriert ist, um es für die Verwendung verfügbar zu machen, müssen wir den folgenden Code oben in unser Modul einfügen.

Code:

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

Sie müssen nur den obigen Code kopieren und oben im Modul einfügen.

Der Grund, warum wir den obigen Code hinzufügen müssen, weil SLEEP eine VBA-Funktion ist, die in Windows-DLL-Dateien dargestellt wird. Daher müssen wir die Nomenklatur deklarieren, bevor wir mit der Unterprozedur beginnen.

Ok, schauen wir uns jetzt das Beispiel der SLEEP-Funktion an.

Code:

 Sub Pause_Example2 () Dim StartTime As String Dim EndTime As String StartTime = Zeit MsgBox StartTime Sleep (10000) EndTime = Zeit MsgBox EndTime End Sub 

Zunächst haben wir zwei Variablen als String deklariert.

 Dim StartTime As String Dim EndTime As String 

Dann haben wir der StartTime-Variablen die TIME-Excel-Funktion zugewiesen. Die TIME-Funktion gibt die aktuelle Zeit gemäß System zurück.

StartTime = Zeit

Dann haben wir dasselbe zugewiesen, um es im Meldungsfeld anzuzeigen.

MsgBox StartTime

Dann habe ich die SLEEP-Funktion als Sleep (10000) angewendet.

Hier sind 10000 Millisekunden, was in VBA 10 Sekunden entspricht.

Dann habe ich der Variablen EndTime endlich die eine weitere TIME-Funktion zugewiesen .

Jetzt habe ich wieder einen Code geschrieben, um die Zeit anzuzeigen.

EndTime = Zeit

Dies zeigt den Unterschied zwischen Startzeit und Endzeit.

Jetzt werde ich den Code ausführen und sehen, wie die Startzeit ist.

Wenn ich den Code ausführe, ist meine Systemzeit 13:40:48 und jetzt wird mein Code 10 Sekunden lang schlafen. Am Ende ist meine Zeit wie folgt.

Auf diese Weise können wir die Ausführung des Codes für eine bestimmte Zeitspanne unterbrechen.