Функция сна VBA
Функция сна в VBA на самом деле является функцией Windows. Это похоже на функцию ожидания в VBA. Он используется для замедления или паузы, или мы можем сказать, остановить выполнение определенного кода на некоторое указанное время. Функция сна должна вызываться в VBA при объявлении ее в коде. Как мы это сделаем, мы узнаем в сегодняшней теме.
Как объяснено выше, VBA Sleep является функцией Windows и присутствует в базе данных ядра Windows. Метод объявления и вызова спящего режима в VBA различен как для 32-битных, так и для 64-битных операционных систем. Это в основном функция Windows API.
Синтаксис для использования функции сна VBA выглядит следующим образом:
Сон (Время в Мили Секундах)
Поэтому, если нам нужно замедлить или остановить код на 1 секунду, нам нужно написать код следующим образом:
Сон 1000
1000 - миллисекунды, которые равны 1 секунде, и это замедлит код на 1 секунду. Если мы хотим замедлить код на 5 секунд, код будет:
Сон 5000
Объявление для функции сна выглядит следующим образом:
# Если VBA7, тогда 'Excel 2010 или более поздняя версия Public объявит PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 или более ранняя версия Public объявит Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End IfПримечание: перед использованием функции сна нужно помнить одну вещь. Нам нужно использовать эту функцию в модулях, а не в объектах Excel. Чтобы использовать VBA, убедитесь, что вкладка разработчика включена на вкладке файлов в разделе параметров.
Как использовать функцию сна VBA Excel?
Мы научимся использовать функцию сна VBA из нескольких примеров в Excel.
Вы можете скачать этот шаблон VBA Sleep Excel здесь - Шаблон VBA Sleep ExcelФункция сна VBA - Пример # 1
В этом примере мы собираемся показать пользователю сообщение о том, что макрос остановится на пять секунд. И ровно через пять секунд мы хотим, чтобы появилось второе сообщение, в котором говорится, что макрос возобновлен.
Выполните следующие шаги, чтобы использовать функцию сна в Excel VBA:
Шаг 1: Перейдите на вкладку « Разработчик » и нажмите на Visual Basic, чтобы открыть VB Editor.
Шаг 2: После того, как VB Editor открыт, нажмите вкладку «Вставка» и затем щелкните модули, чтобы вставить новый модуль.
Шаг 3: Теперь используйте оператор объявления, чтобы использовать функцию сна. Поскольку я использую 64-битную операционную систему Windows, я буду использовать оператор объявления для того же самого.
Код:
Публичная декларация PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Шаг 4: Теперь объявите подфункцию, чтобы начать писать код.
Код:
Открытый Объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub
Шаг 5: Используйте функцию Mgsbox для отображения сообщения о том, что макрос будет приостановлен на пять секунд.
Код:
Публичный объявить PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro будет приостановлен на пять секунд" End Sub
Шаг 6: Используйте функцию Sleep, чтобы приостановить макрос на пять секунд.
Код:
Публичный объявить PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro будет приостановлен на пять секунд" Sleep 5000 End Sub
Шаг 7: Теперь используйте функцию msgbox для отображения сообщения о том, что макрос был возобновлен.
Код:
Публичная декларация PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "Макрос будет приостановлен на пять секунд" Макрос Sleep 5000 MsgBox "возобновлен" End Sub
Шаг 8: Запустите код с предоставленной кнопки запуска или нажмите F5, чтобы увидеть результат. Мы видим, что первое сообщение отображается.
Шаг 9: Как только мы нажимаем Ok и ждем пять секунд, мы видим другое сообщение.
Между обоими сообщениями была пауза в пять секунд.
VBA Sleep Function - Пример № 2
Теперь, что мы собираемся сделать в другом примере, это то, что у меня есть четыре переменные A, B, C и D. Сначала я хочу добавить значения A и B и отобразить их, а через 5 секунд я хочу отобразить значение добавление A, B, C и D.
Выполните следующие шаги, чтобы использовать функцию сна в Excel VBA:
Шаг 1: Перейдите на вкладку « Разработчик » и нажмите на Visual Basic, чтобы открыть VB Editor.
Шаг 2: После того, как VB Editor открыт, нажмите вкладку «Вставка» и затем щелкните модули, чтобы вставить новый модуль.
Шаг 3: Теперь используйте оператор объявления, чтобы использовать функцию сна. Поскольку я использую 64-битную операционную систему Windows, я буду использовать оператор объявления для того же самого.
Код:
Публичная декларация PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Шаг 4: Теперь объявите подфункцию, чтобы начать писать код.
Код:
Открытый Объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub
Шаг 5: Объявите шесть переменных A, B, C, D, X и Y для хранения значений.
Код:
Публичный Объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y как целочисленный конец Sub
Шаг 6: Присвойте случайные значения A, B, C и D.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y как целое число A = 10 B = 15 C = 20 D = 25 End Sub
Шаг 7: Сохраните значение A + B в X.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y как целое число A = 10 B = 15 C = 20 D = 25 X = A + B End Sub
Шаг 8: Показать значение X.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y как целое число A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub
Шаг 9: Теперь используйте функцию сна, чтобы сделать паузу на пять секунд.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y как целое число A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub
Шаг 10: Теперь в переменной Y сохраните значение X + C + D и отобразите его.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y как целое число A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub
Шаг 11: Запустите приведенный выше код с помощью кнопки запуска или нажатием клавиши F5 и посмотрите результат. Мы видим, что первое сообщение отображается как.
Шаг 12: Нажмите OK, и макрос ждет пять секунд и отображает следующий результат.
Функция сна VBA - Пример № 3
В этом примере мы хотим переименовать две таблицы 1 и 2 на Ананд и Аран соответственно. Но продолжительность времени между ними должна быть пять секунд. По сути, мы хотим, чтобы макрос останавливался после переименования листа 1, а затем переименовывал лист 2. В настоящее время оба листа имеют следующие имена:
Выполните следующие шаги, чтобы использовать функцию сна в Excel VBA:
Шаг 1: Перейдите на вкладку « Разработчик » и нажмите на Visual Basic, чтобы открыть VB Editor.
Шаг 2: После того, как VB Editor открыт, нажмите вкладку «Вставка» и затем щелкните модули, чтобы вставить новый модуль.
Шаг 3: Теперь используйте оператор объявления, чтобы использовать функцию сна. Поскольку я использую 64-битную операционную систему Windows, я буду использовать оператор объявления для того же самого.
Код:
Публичная декларация PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Шаг 4: Теперь объявите подфункцию, чтобы начать писать код.
Код:
Открытый Объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub
Шаг 5: Активируйте лист 1 и переименуйте его с помощью следующего кода:
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Активировать рабочие листы ("Sheet1"). Имя = "Anand" MsgBox "Лист 1 переименован" End Sub
Шаг 6: Теперь используйте функцию сна, чтобы использовать задержку на пять секунд.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Активировать рабочие листы ("Sheet1"). Name = "Anand" MsgBox "Лист 1 переименован" Sleep 5000 End Sub
Шаг 7: Теперь переименуйте лист 2 следующим кодом.
Код:
Публичное объявление PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Активировать рабочие листы ("Sheet1"). Имя = "Anand" MsgBox "Лист 1 переименован в" Sleep 5000 Worksheets (") Sheet2 "). Активировать рабочие листы (" Sheet2 "). Name =" Aran "MsgBox" Лист 2 переименован в "End Sub"
Шаг 8: Теперь запустите код, и мы увидим, как отображается первое сообщение.
Также мы можем проверить, что лист 1 переименован.
Шаг 9: Нажмите ок и подождите пять секунд, пока не переименуют следующее сообщение и второй лист.
Второй лист также переименован.
То, что нужно запомнить
- VBA Sleep - это оконная функция, поэтому для ее использования нам необходимо использовать операторы объявления.
- Существуют разные декларации для разных типов операционных систем.
- Простое использование VBA Sleep останавливает макрос на указанное время.
- Параметр времени, заданный для функции ожидания VBA, указывается в миллисекундах.
Рекомендуемые статьи
Это руководство по функции сна VBA. Здесь мы обсудим, как использовать Excel VBA Sleep Function вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -
- VBA VLOOKUP Функция
- Функция DCOUNT в Excel
- VBA Copy Paste
- Функция COMBIN в Excel