Сроки задержки в VBA - PullRequest
       54

Сроки задержки в VBA

16 голосов
/ 05 августа 2011

Я бы хотел 1 секунду задержки в моем коде. Ниже приведен код, который я пытаюсь сделать с этой задержкой. Я думаю, что он опрашивает дату и время выключения операционной системы и ждет, пока время не совпадет. У меня проблема с задержкой. Я думаю, что это не опрашивает время, когда это соответствует времени ожидания, и это просто сидит там и замирает. Это только замораживает около 5% времени, когда я запускаю код. Мне было интересно узнать о Application.Wait и есть ли способ проверить, больше ли время опроса, чем время ожидания.

   newHour = Hour(Now())
   newMinute = Minute(Now())
   newSecond = Second(Now()) + 1
   waitTime = TimeSerial(newHour, newMinute, newSecond)
   Application.Wait waitTime

Ответы [ 12 ]

0 голосов
/ 18 ноября 2015

С должными кредитами и благодаря Стиву Малрой.

У меня были проблемы с полночью в Word, и следующий код работал для меня

Public Function Pause(NumberOfSeconds As Variant)
 '   On Error GoTo Error_GoTo

    Dim PauseTime, Start
    Dim objWord As Word.Document

    'PauseTime = 10 ' Set duration in seconds
    PauseTime = NumberOfSeconds
    Start = Timer ' Set start time.

    If Start + PauseTime > 86399 Then 'playing safe hence 86399

    Start = 0

    Do While Timer > 1
        DoEvents ' Yield to other processes.
    Loop

    End If

    Do While Timer < Start + PauseTime
        DoEvents ' Yield to other processes.
    Loop

End Function
0 голосов
/ 12 марта 2014

В Windows таймер возвращает сотые доли секунды ... Большинство людей просто используют секунды, потому что на платформе Macintosh таймер возвращает целые числа.

...