Задержка в 1 секунду длится почти 2 секунды

Я пишу код для копирования данных из одной электронной таблицы в другую каждую секунду. Я пробовал Application.Wait и Sleep, но они заблокировали обе электронные таблицы, поэтому я решил использовать цикл do until. Это работает, но 1 секунда длится почти 2 секунды, и я не знаю, почему. Поэтому я оставил в коде только цикл, но тест дал тот же результат (это заняло около 95 секунд). Любое предложение? Вот код:

    Sub Test()

    Dim Delay As Date

    cell = 1

    For i = 1 to 60

     Workbooks("Data").Worksheets("Sheet1").Range("C" & cell).Value = cell

     cell = cell +1
     Delay = Now() + TimeValue("00:00:01")

     Do Until Now() >= Delay

      Do Events

     Loop

    Next i

    End Sub

person István    schedule 14.10.2015    source источник
comment
Итак, у вас есть цикл, внутри которого вы выполняете некоторую обработку, а затем ждете секунду, может быть, ваше дополнительное время - это обработка? Что произойдет, если сначала отключить обновление экрана, а затем снова включить его с помощью Application.ScreenUpdating = False, ускорится ли это?   -  person Dave Sexton    schedule 14.10.2015


Ответы (1)