Функция сна 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. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. VBA VLOOKUP Функция
  2. Функция DCOUNT в Excel
  3. VBA Copy Paste
  4. Функция COMBIN в Excel

Категория: