VBA Sleep Doesn't Work VBA Sleep Doesn't Work vba vba

VBA Sleep Doesn't Work


VBA does not have a Sleep function.

You can import it from Kernel32.dll like this:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Note that this will freeze the application.
You can also call DoEvents in a While loop, which won't freeze the application.


Everything I've tried seems to hang the application, including Application.Wait. This seems to work though:

waitTill = Now() + TimeValue("00:15:00")While Now() < waitTill    DoEventsWend


You can also pause the current macro context with Application.Wait T which won't block the whole process.