Как приостановиться для определенного количества времени? (Excel/VBA)

У меня есть рабочий лист Excel, который имеет следующий макрос. Я хотел бы циклично выполнить его каждую секунду, но danged, если я могу найти, что функция делает это. Разве это не возможно?

Sub Macro1()
'
' Macro1 Macro
'
Do
    Calculate
    'Here I want to wait for one second

Loop
End Sub
99
задан chris neilsen 8 July 2019 в 20:23
поделиться

2 ответа

Используйте метод ожидания :

Application.Wait Now + #0:00:01#

или (для Excel 2010 и более поздних версий):

Application.Wait Now + #12:00:01 AM#
122
ответ дан 24 November 2019 в 04:59
поделиться

Add this to your module

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

Or, for 64-bit systems use:

Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)

Call it in your macro like so:

Sub Macro1()
'
' Macro1 Macro
'
Do
    Calculate
    Sleep (1000) ' delay 1 second

Loop
End Sub
60
ответ дан 24 November 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: