Код паузы в VBA
Даже интересно, как было бы здорово, если бы мы могли запускать код согласно нашим временным ограничениям, потому что до этого времени нам удавалось завершить другую работу и подготовить эти данные для дальнейшей работы. Это необходимость в любых задачах, когда нам нужно запустить один набор кода и работать над другими вещами в соответствии с требованием кода, и пока другая часть кода не запустится, мы будем готовы с данными, которые нам нужно обработать с помощью тот же код Это можно сделать с помощью приложения VBA «Sleep and Wait». С помощью Sleep and Wait мы можем приостановить код в любой момент времени. Время может быть в секундах или времени по часам.
Синтаксис VBA Pause в Excel
Синтаксис для паузы VBA выглядит следующим образом:
Примеры для приостановки кода VBA в Excel
Ниже приведены различные примеры для приостановки кода VBA в Excel.
Вы можете скачать этот шаблон VBA Pause Excel здесь - VBA Pause Excel TemplateПример № 1 - Пауза VBA
В этом примере мы увидим, как работает VBA Wait. Как мы видим, приложение Wait разрешает Time как Boolean. Это означает, что если значение, которое мы вводим, является правильным, то мы получим его как ИСТИНА, иначе ЛОЖЬ.
Чтобы увидеть, как VBA Pause будет работать с приложением Wait в VBA,
Шаг 1: Во-первых, нам нужен модуль, где мы будем писать код для этого. Перейдите в меню « Вставка» и выберите « Модуль из выпадающего меню», как показано ниже.
Шаг 2: Теперь напишите подкатегорию под именем VBA Pause или под любым другим именем согласно вашему выбору, как показано ниже.
Код:
Sub VBAPause1 () End Sub
Для паузы VBA нам нужен набор текста, который мы хотели бы напечатать с паузой. Давайте рассмотрим этот текст как « Получить… Установить… Иди… !! ». Поэтому мы выберем 3 разные ячейки, в которых мы будем хранить эти текстовые слова отдельно в каждой ячейке.
Шаг 3: Выберите первый диапазон ячеек как A1 или любую другую ячейку по своему выбору, и чтобы присвоить ему значение, выберите функцию Value и присвойте ей значение, как мы исправили выше. Или выберите любое значение по выбору.
Код:
Sub VBAPause1 () Range ("A1"). Value = "Get …" End Sub
Шаг 4: Назначьте остальные значения таким же образом, как мы сделали для первого значения. Здесь мы выбираем ячейки от A1 до C1 в качестве нашего диапазона.
Код:
Sub VBAPause1 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set…" Range ("C1"). Value = "Go .. !!!" End Sub
Шаг 5: В любом случае, если мы запустим полный код, мы получим все значения Get. Установить … Go .. !!! за один раз от ячейки А1 до С1, как показано ниже.
Шаг 6: Теперь, если мы хотим сделать паузу между всей паузой, нам нужно будет использовать приложение Wait, как показано ниже. Мы будем использовать это приложение чуть выше последнего диапазона.
Код:
Sub VBAPause1 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set…" Application.Wait (Range ("C1"). Value = "Go ..! !! "End Sub
Шаг 7: В скобках приложения Wait мы можем записать время в формате 24 часа или в формате AM / PM. Мы рассматриваем формат 24 часа. Теперь напишите время в формате ЧЧ: ММ: СС, когда мы хотим запустить остальную часть кода после паузы.
Код:
Sub VBAPause1 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set…" Application.Wait ("12: 26: 00") Range ("C1") .Value = "Иди .. !!!" End Sub
Шаг 8: Теперь скомпилируйте код и запустите его снова. Мы увидим, что в ячейке A1 мы получили значение ячейки как «Get…», и все же курсор работает в ожидании.
Шаг 9: И как только часы достигнут 12:25:00 часов, остальные значения ячеек в ячейках B1 и C1 снова появятся, как показано ниже.
Пример №2 - Пауза VBA
Есть еще один способ, с помощью которого мы можем приостановить код без добавления или изменения времени в приложении Wait несколько раз. Для этого мы будем ссылаться на тот же код, который мы видели в примере-1.
Шаг 1: Теперь в скобках приложения Wait напишите Now () с TimeValue, которое мы хотим дать. Давайте рассмотрим паузу в 30 секунд.
Код:
Sub VBAPause2 () Range ("A1"). Value = "Get …" Range ("B1"). Value = "Set…" Application.Wait (Now () + TimeValue ("00:00:30") ) Диапазон ("C1"). Значение = "Go .. !!!" End Sub
Шаг 2: Поэтому, когда мы запустим код, VBA рассмотрит текущее время и добавит 30-секундную паузу. И это будет работать так же, как в примере 1. Для проверки запустите код.
Сначала мы получим первое значение ячейки в A1.
И после 30 секундной паузы он выдаст остальные значения в ячейках B1 и C1.
Пример № 3 - Пауза VBA
В этом примере мы увидим, как VBA Pause работает с приложением Sleep . Ниже приведен синтаксис приложения Sleep, которое позволяет ByVal dwMilliseconds только как LongPtr .
Теперь это значение на самом деле в VBA. Нам нужно ввести готовый код, который доступен в MS Docs, как показано ниже.
Шаг 1: Теперь напишите подкатегорию для паузы VBA, как показано ниже.
Код:
Sub VBAPause3 () End Sub
Шаг 2: Для этого нам нужно определить 2 переменные для времени запуска и сна в виде строки, как показано ниже.
Код:
Sub VBAPause3 () Dim, начинающийся как струна
Шаг 3: Назначьте функцию времени первой переменной, которая начинается.
Код:
Sub VBAPause3 () Dim, начинающийся как строка, Dim, спящий как строка, начинающаяся = Time End Sub
Шаг 4: И используйте Msgbox, чтобы увидеть значение, хранящееся в переменной Starting.
Код:
Sub VBAPause3 () Dim Starting As String Dim Sleeping As String Начало = Время MsgBox Starting End Sub
Шаг 5: Теперь используйте приложение Sleep и выделите количество миллисекунд, пока мы не захотим перевести функции в спящий режим.
Код:
Sub VBAPause3 () Dim, начинающийся как строка Dim, спящий как строка
Шаг 6: Теперь аналогичным образом добавьте приложение Time ко второй переменной Sleeping . И используйте MsgBox, чтобы увидеть значение, хранящееся в переменной Sleeping, как показано ниже.
Код:
Sub VBAPause3 () Dim, начинающийся как строка, Dim, спящий как строка, начинающий = время MsgBox, начинающий спать, = время.
Наконец, скомпилируйте код и запустите код, нажав на кнопку Play, расположенную под строкой меню, как показано ниже. Мы получим окно сообщения со временем, которое будет нашим временем начала.
После того, как мы нажмем Ok, через 5000 миллисекунд, мы увидим еще одно окно сообщения с временем ожидания, как показано ниже.
Время сна начнется сразу после того, как мы нажмем кнопку ОК. Это не разница во времени между началом и временем сна. Фактически, это время после того, как мы нажмем кнопку ОК в первом окне сообщения.
Плюсы VBA Pause
- Это очень полезно, когда у нас есть несколько функций, которые должны быть выполнены с некоторым интервалом времени.
- Это может быть использовано в целях анализа и расчета.
То, что нужно запомнить
- Процесс, такой как VBA Pause, не может быть выполнен путем записи макроса.
- Всегда лучше использовать процесс, показанный в примере 2, для приложения «Ожидание», где мы будем защищены от изменения времени снова и снова, вместо того, чтобы просто сохранять паузу в несколько секунд после текущего времени.
- Приложение сна из примера-3 позволяет только миллисекунды
- Код предварительной сборки, показанный в начале примера-3, является важной частью для применения, поскольку он будет удовлетворять синтаксису Sleep-приложения.
Рекомендуемые статьи
Это руководство к паузе VBA. Здесь мы обсуждаем, как мы можем приостановить код в любой момент времени с помощью приложения ожидания и сна. Вы также можете просмотреть наши другие предлагаемые статьи -
- Как использовать функцию VBA IsNumeric?
- Создание поля со списком в Excel
- Вставьте флажок в Excel
- Функция VBA UCASE в Excel