Wie verwende ich warte- und schlafbefehle in vba?
VBA-Wartebefehl
In VBA hilft Ihnen der WAIT-Befehl (Methode), alle Aktivitäten, die Sie in Excel ausführen, auf eine bestimmte Zeit oder bis zu einem bestimmten Zeitpunkt zu warten. Einfach ausgedrückt: Sie können VBA einige Sekunden, Minuten oder sogar Stunden oder bis zu einer festgelegten Zeit warten lassen. Es gibt ein Argument, das Sie angeben müssen.
Schritte zur Verwendung von VBA Wait
- Verwenden Sie zunächst das Schlüsselwort „Application“ und geben Sie einen Punkt (.) ein, um die Liste der Eigenschaften und Methoden zu erhalten.
- Wählen Sie anschließend die Methode „Warten“ aus oder tippen Sie darauf.
- Geben Sie nun das Argument „Time“ an, um VBA mitzuteilen, wie lange Sie warten möchten.
- Führen Sie am Ende den Code aus, um alle Aktivitäten in Excel in die Warteschlange zu stellen.
In diesem Code haben Sie NOW und TIMEVALUE ( VBA-Funktionen ) verwendet, um VBA anzuweisen, nach der Ausführung des Codes zehn Sekunden zu warten. Sobald also die zehn Sekunden abgelaufen sind, testet die IF-Anweisung die Bedingung und führt sie aus. Dabei wird ein Meldungsfeld mit der Meldung „Warten“ angezeigt.
Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub
Sie können die Wait-Methode auch verwenden, um Excel bis zu einem bestimmten Zeitpunkt auf alle Aktivitäten warten zu lassen. Der folgende Code wartet bis 13:00 Uhr. Da es in meinem System also gerade 12:52 Uhr ist, lässt dieser Zeilencode die nächsten 8 Minuten warten.
Application.Wait "13:00:00"
Hinweis: Mit der Wartemethode können Sie nur mindestens eine Sekunde warten.
VBA-Schlaf
Sleep ist eine Windows-Funktion ( unter Windows-DLL-Dateien; Sie müssen diese Funktion mithilfe einer Codeanweisung importieren ), die Ihnen dabei helfen kann, die Ausführung eines Makros anzuhalten oder eine Verzögerung hinzuzufügen. In dieser Funktion können Sie die Zeit in Millisekunden angeben, aber Sie können die Schlaffunktion nicht stoppen, wenn sie alles angehalten hat.
Verwenden Sie die Sleep-Funktion in VBA
- Zunächst müssen Sie die Code-Anweisung verwenden, um die Sleep-Funktion aus der „ Kernel32-Bibliothek “ zu importieren.
- Und dann müssen Sie sicherstellen, dass Sie die „PtrSafe“-Anweisung hinzufügen, wenn Sie 64-Bit-Excel verwenden.
- Dann müssen Sie die Sleep-Funktion im Code aufrufen.
- Geben Sie am Ende die Zeit (Millisekunden) an, um die der Code verzögert werden soll.
If VBA7 Then ' For 64-Bit versions of Excel
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Else 'For 32-Bit versions of Excel Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) End If Sub vba_sleep() Sleep (10000) 'add code here MsgBox "Finished" End Sub
Im obigen Code haben Sie 10.000 Millisekunden, was 10 Sekunden entspricht. Wenn Sie diesen Code ausführen, verzögert er den Code um 10 Sekunden und zeigt dann ein Meldungsfeld an.
Hinweis: Wenn Sie die Ruhefunktion verwenden, stoppt sie alles in Excel für die von Ihnen festgelegte Zeit, Sie können sie nicht einmal unterbrechen. Schauen Sie sich unbedingt diesen Link von Microsoft zur Kompatibilität zwischen 32-Bit- und 64-Bit-Versionen an.