User Tools

Site Tools


vba:excel:functions:sleep

[VBA] [Excel] sleep()

Excel VBA kennt die Methode wait() um bis zu einer bestimmten Uhrzeit zu warten bevor der Code weiter verarbeitet wird. Doch meistens will man dies nicht an eine Uhrzeit knüpfen sondern ab jetzt X Sekunden warten.

Lösung von Microsoft

In der F1-Hilfe zu Excel VBA findet man auch 2 nicht wirklich elegante Lösungen Ich will euch diese nicht vorenthalten

' Aus der F1-Hilfe von Excel.
 
'This example pauses a running macro for approximately 10 seconds.
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime 
 
'This example displays a message indicating whether 10 seconds have passed.
If Application.Wait(Now + TimeValue("0:00:10")) Then
	MsgBox "Time expired"
End If

Meine Lösung

sleep
'/**
' * Wartet mit der weiteren Ausführung des Codes für X Sekunden
' * @example    Call sleep(10)
' * @param  <Integer>   Sekunden
' * @return void
' */
Public Sub sleep(sec As Integer)    
	Call Application.Wait(DateAdd("s", sec, Now()))
End Sub

Diese kann dann irgendwo im Code angewendet werden

'10 Sekunden Pause machen
Call sleep(10)
vba/excel/functions/sleep.txt · Last modified: 09.12.2013 09:39:54 (external edit)