Функция ожидания VBA

Функция ожидания Excel VBA

VBA Подождите это встроенная функция, используемая для приостановки выполнения кода на указанное время, она очень похожа на то, что мы делаем в команде сна, и для приостановки кода мы используем метод application.wait.

Некоторым из кодов требуется некоторое время, прежде чем перейти к следующей строке кода из-за других задач, которые необходимо выполнить. В этих случаях нам нужно остановить выполнение кода и сделать паузу на некоторое время, а затем продолжить выполнение. Мы можем приостановить выполнение кода двумя способами: первый — это метод «Сон», а второй — метод «Ждать». В нашей предыдущей статье мы обсуждали «Сон VBAСон VBAVBA Sleep — это функция Windows, представленная в файлах DLL Windows, которая приостанавливает выполнение программы на определенный период времени (даже в миллисекундах).читать далееметод приостановить код VBAПриостановить код VBAVBA Pause помогает приостановить выполнение кода на определенный период. Вы можете приостановить код VBA на определенный период, используя две функции: «Ждать» и «Сон».читать далее.

«Подождите», как следует из самого названия, он будет удерживать код макроса, который должен быть выполнен до указанного периода времени. Используя этот метод, нам нужно указать время, в течение которого наш код должен приостанавливаться. Далее мы увидим примеры.

Синтаксис функции WAIT следующий.

функция ожидания vba

Нам нужно указать количество времени, на которое наш код должен приостановиться. Как видите, в конце написано Boolean. Это означает, что он возвращает результат в виде логических значений, т. е. TRUE или FALSE.

Пока не наступит указанное время, он говорит ЛОЖЬ, а в момент наступления указанного времени возвращает ИСТИНА.

Это отличается от функции SLEEP, потому что WAIT — это встроенная функция, а SLEEP — это функция Windows. Прежде чем мы получим доступ к функции SLEEP, нам нужно упомянуть приведенный ниже код в верхней части модуля. Но WAIT этого не требует.

Код:

#If VBA7 Then

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

‘For 64 Bit Systems

#Else

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

‘For 32 Bit Systems

End If

Примеры использования функции ожидания Excel VBA

Вы можете скачать этот шаблон VBA Wait Excel здесь — Шаблон Excel ожидания VBA

Пример №1

Предположим, вы работаете в Excel в полдень в 14:30:00 и хотите, чтобы ваш код был приостановлен до тех пор, пока время не станет 14:40:00. Вы можете использовать приведенный ниже код.

Код:

Sub Wait_Example1()

Application.Wait "14:40:00"

End Sub
пример ожидания vba 1.1

Код остановит работу вашего Excel до тех пор, пока время не достигнет 14:40:00 в вашей операционной системе. Предоставление такого времени опасно, потому что мы не всегда работаем с 14:30:00. Он все время меняется.

Скажем, всякий раз, когда вы запускаете код. Вы хотите подождать 2 минуты, как вы ссылаетесь на это в своем коде?

Таким образом, мы можем использовать VBA СЕЙЧАСVBA СЕЙЧАСNOW — это функция даты и времени в VBA, которая используется для получения текущей системной даты и времени. Функция VBA Now не принимает никаких аргументов, и возвращаемым результатом для этой функции является дата.читать далее с функцией ЗНАЧЕНИЕ ВРЕМЕНИ для ввода указанного времени из текущего времени.

Напоминаем вам, что функция СЕЙЧАС () возвращает текущую дату и время в соответствии с вашей компьютерной системой. Функция TIMEVALUE представляет время с 00:00:00 до 23:59:59, т.е. 23:59:59 в 24-часовом формате. Он преобразует строковое значение в значение времени.

Например, NOW () + TIMEVALUE (00:02:30) означает текущее время + 2 минуты 30 секунд.

Если текущее время 14:25:30, оно становится 14:28:00.

Чтобы остановить или приостановить выполнение вашего кода с текущего времени до следующих 10 минут, вы можете использовать приведенный ниже код.

Код:

Sub Wait_Example2()

Application.Wait (Now() + TimeValue("00:10:00"))

End Sub
пример ожидания vba 1.2

Важно использовать функцию СЕЙЧАС () для точной паузы. В противном случае есть вероятность, что ваша книга Excel будет приостановлена ​​​​до полуночи. Однако мы можем выйти из метода паузы в любой момент времени, нажав кнопку Esc ключ или Сломать ключ.

Пример #2

Подождите 10 секунд каждый раз, когда цикл запускается

Метод ожидания хорошо используется с циклами. Бывают ситуации, когда вам может потребоваться подождать 10 секунд каждый раз, когда цикл запускается. Например, посмотрите на данные ниже.

пример 2.2

Чтобы рассчитать Прибыль = (Продажи — Стоимость), вы хотите создать цикл, и после каждого цикла вы хотите подождать 10 секунд, чтобы проверить, является ли результат точным или нет. Приведенный ниже код сделает это.

Код:

Sub Wait_Example3()

Dim k As Integer

For k = 2 To 9
Cells(k, 4).Value = Cells(k, 2) - Cells(k, 3)
Application.Wait (Now() + TimeValue("00:00:10"))
Next k

End Sub
пример 2.1

Этот код будет вычислять столбец прибыли построчно. После завершения первой строки он будет ждать 10 секунд, прежде чем вычислит следующую строку.

пример 2.3

VBA Sleep против VBA Ожидание

ВБА СОН ПОДОЖДИТЕ VBA
Это не встроенная функция VBA, для доступа к этой функции требуется специальный код. Это встроенная функция VBA, для доступа к которой не требуется никакого специального кода.
Для сна требуются миллисекунды в качестве временных рамок. Ожидание требует регулярных временных рамок.
Мы можем задержать код в миллисекундах. Мы можем задержать только на целые секунды.

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *