VBA Sleep функция

Функцията за заспиване в VBA всъщност е функция на Windows. Подобно е на функцията за изчакване във VBA. Използва се за забавяне или пауза или можем да кажем да спре изпълнението на определен код до определено време. Функцията за заспиване трябва да се извиква в VBA, докато я декларира в кода. Как правим това ще научим в днешната тема.

Както беше обяснено по-горе VBA Sleep е функция на Windows и присъства в базата данни на ядрото на Windows. Методът за деклариране и извикване на функция за заспиване в VBA е различен както за 32 битови операционни системи, така и за 64 битови операционни системи. Това е по същество функция за API на Windows.

Синтаксисът за използване на VBA Sleep функция е както следва:

Сън (време в мили секунди)

Така че, ако трябва да забавим или спрем кода за 1 секунда, трябва да напишем кода като:

 Спи 1000 

1000 е мили секунди, което се равнява на 1 секунда и ще забави кода за 1 секунда. Ако искаме да забавим кода за 5 секунди, той ще бъде:

 Сън 5000 

Декларацията за функция сън е следната:

 #If VBA7 След това 'Excel 2010 или по-нова версия Публично декларирайте PtrSafe Sub Sleep Lib "kernel32" (ByVal Милисекунди като LongPtr) #Else' Excel 2007 или по-рано Public Declare Sub Sleep Lib "kernel32" (ByVal Millisekunds as Long) #End If 
Забележка: Преди да използваме функцията за сън, има едно нещо, което трябва да имаме предвид. Трябва да използваме тази функция в модули, а не в обектите на excel. За да използвате VBA, за да гарантирате, че разделът на програмиста е включен от раздела с файлове в секцията с опции.

Как да използвате функция за сън Excel VBA?

Ще научим как да използваме функция VBA Sleep с няколко примера в excel.

Можете да изтеглите този шаблон на VBA Sleep Excel тук - VBA Sleep Excel шаблон

VBA Sleep функция - пример №1

Това, което ще направим в този пример е, че ще изскочим съобщение до потребителя, че макросът ще спре за пет секунди. И точно след пет секунди, искаме да се появи второ съобщение, в което се казва, че макросът е възобновен.

Следвайте стъпките по-долу, за да използвате функция Sleep в Excel VBA:

Стъпка 1: Отидете в раздела Developer и кликнете върху Visual Basic, за да отворите VB Editor.

Стъпка 2: След като е отворен VB редактора, щракнете върху раздела Вмъкване и след това щракнете върху модули, за да вмъкнете нов модул.

Стъпка 3: Сега използвайте декларацията за използване, за да използвате функцията за заспиване. Тъй като използвам Windows 64-битова операционна система, ще използвам декларацията за същото.

Код:

 Публично декларирайте PtrSafe Sub Sleb Lib „kernel32“ (ByVal dwMilliseconds As LongPtr) 

Стъпка 4: Сега декларирайте подфункцията, за да започнете да пишете кода.

Код:

 Публично декларирайте PtrSafe Sub Sleb 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 „MAcro ще бъде поставен на пауза за пет секунди„ Sleep 5000 MsgBox “Макрос е възобновено„ End Sub 

Стъпка 8: Стартирайте кода от предоставения бутон за стартиране или натиснете F5, за да видите резултата. Виждаме, че се показва първото съобщение.

Стъпка 9: След като кликнем на Ok и изчакаме пет секунди виждаме друго съобщение.

Между двете съобщения имаше пауза в продължение на пет секунди.

VBA Sleep функция - пример №2

Това, което ще направим в друг пример е, че имам четири променливи A, B, C и D. Първо, искам да добавя стойностите на A и B и да го покажа и след 5 секунди искам да покажа стойността на добавянето на A, B, C и D.

Следвайте стъпките по-долу, за да използвате функция Sleep в Excel VBA:

Стъпка 1: Отидете в раздела Developer и кликнете върху Visual Basic, за да отворите VB Editor.

Стъпка 2: След като е отворен VB редактора, щракнете върху раздела Вмъкване и след това щракнете върху модули, за да вмъкнете нов модул.

Стъпка 3: Сега използвайте декларацията за използване, за да използвате функцията за заспиване. Тъй като използвам Windows 64-битова операционна система, ще използвам декларацията за същото.

Код:

 Публично декларирайте PtrSafe Sub Sleb Lib „kernel32“ (ByVal dwMilliseconds As LongPtr) 

Стъпка 4: Сега декларирайте подфункцията, за да започнете да пишете кода.

Код:

 Публично декларирайте PtrSafe Sub Sleb 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 като Integer End 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 Край 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 Край 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 Sleep функция - пример №3

В този пример искаме да преименуваме два работни листа лист 1 и лист 2 като съответно Ананд и Аран. Но продължителността на времето между двете трябва да бъде пет секунди. По принцип искаме макросът да спре на пауза след преименуване на лист 1 и след това да преименува лист 2. В момента и двата листа са кръстени, както следва:

Следвайте стъпките по-долу, за да използвате функция Sleep в Excel VBA:

Стъпка 1: Отидете в раздела Developer и кликнете върху Visual Basic, за да отворите VB Editor.

Стъпка 2: След като е отворен VB редактора, щракнете върху раздела Вмъкване и след това щракнете върху модули, за да вмъкнете нов модул.

Стъпка 3: Сега използвайте декларацията за използване, за да използвате функцията за заспиване. Тъй като използвам Windows 64-битова операционна система, ще използвам декларацията за същото.

Код:

 Публично декларирайте PtrSafe Sub Sleb 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 () Работни листове („Sheet1“). Активирайте работни листове („Sheet1“). Име = „Anand“ MsgBox 

Стъпка 6: Сега използвайте функция за заспиване, за да използвате забавяне за пет секунди.

Код:

 Публично декларирайте PtrSafe Sub Sleep Lib „kernel32“ (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Работни листове („Sheet1“). Активирайте работни листове („Sheet1“). Име = „Anand“ MsgBox 

Стъпка 7: Сега преименувайте листа 2 със следния код.

Код:

 Публично декларирайте PtrSafe Sub Sleep Lib „kernel32“ (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Работни листове („Sheet1“). Активирайте работни листове („Sheet1“). Име = „Anand“ MsgBox Sheet2 "). Активирайте работни листове (" Sheet2 "). Name =" Aran "MsgBox" Sheet 2 се преименува на "End Sub 

Стъпка 8: Сега стартирайте кода и виждаме, че се показва първото съобщение.

Също така можем да проверим дали лист 1 е преименуван.

Стъпка 9: Натиснете ОК и изчакайте пет секунди, за да бъде преименувано следващото съобщение и втори лист.

Вторият лист също е преименуван.

Неща, които трябва да запомните

  • VBA Sleep е функция на прозореца, така че за да използваме, трябва да използваме декларации за декларация.
  • Има различни декларации за декларации за различни видове операционни системи.
  • Просто използването на VBA Sleep замразява макроса за предоставеното време.
  • Времевият параметър, даден на функцията за заспиване на VBA, е в милисекунди.

Препоръчителни статии

Това е ръководство за функцията за заспиване на VBA. Тук обсъждаме как да използвате функцията за сън Excel VBA заедно с практически примери и шаблон за excel за сваляне. Можете да разгледате и другите ни предложени статии -

  1. VBA VLOOKUP функция
  2. DCOUNT Функция в Excel
  3. VBA Копие Паст
  4. COMBIN функция в Excel

Категория: