Pozastavte spustenie kódu VBA
Pauza VBA sa používa na pozastavenie vykonania kódu na stanovenú dobu a na pozastavenie kódu vo VBA použijeme metódu application.wait.
Keď po vykonaní niečoho staviame veľké projekty VBA, možno si budeme musieť nejaký čas počkať, kým urobíme ďalšie úlohy. Ako v takýchto scenároch pozastavíme makrokód, aby urobil našu úlohu? Kód VBA môžeme na určité časové obdobie pozastaviť pomocou dvoch funkcií, ktoré sú „čakanie“ a „spánok“.

Ako pozastaviť kód pomocou metódy čakania?
„Čakať“ je funkcia, ktorú používame vo VBA na udržanie chodu makra na konkrétny čas. Pri použití tejto funkcie si musíme spomenúť, do akej doby má náš kód čakať.
Napríklad ak vykonávate kód o 13:00:00 a zadáte čas ako „13:15:00“, bude makro udržované v činnosti 15 minút.
Teraz sa pozrite na argument funkcie WAIT vo VBA.

V časovom argumente musíme spomenúť, v akom čase by sa mal náš kód pozastaviť alebo počkať.
Napríklad sa pozrite na nižšie uvedený kód VBA.
Kód:
Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " Do VBA „End Sub

Pamätajte, že počas spustenia tohto kódu je môj systémový čas 13:00:00. Hneď ako spustím kód, vykoná prvé dva riadky tj
Rozsah („A1“). Hodnota = „Dobrý deň“ & Rozsah („A2“). Hodnota = „Vitajte“
Ak sa ale pozriete na ďalší riadok, bude tam napísané Application.Wait („13:15:00“), takže po vykonaní týchto úloh bude moje makro pozastavené na 15 minút, tj. Od 13:00:00 počká, kým môj systémový čas dosiahne 13:15:01.
Akonáhle môj systémový čas dosiahne ten čas, vykoná zostávajúce riadky kódu.
Rozsah („A3“). Hodnota = „Do VBA“
Toto však nie je najlepší spôsob nacvičovania kódu pozastavenia. Povedzme, že spúšťate kód v rôznych časoch, a potom musíme použiť funkciu NOW VBA s funkciou TIME VALUE.
Teraz funkcia vracia aktuálny dátum a čas podľa systému, na ktorom pracujeme.
Funkcia TIME Value udržuje čas od 00:00:00 do 23:59:29.
Dobre, predpokladajme, že pri každom spustení kódu musíme pozastaviť kód na 10 minút, potom môžeme použiť nasledujúci kód.
Kód:
Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Value =" Do VBA "End Sub

Je to podobné ako v predchádzajúcom kóde, ale jediný rozdiel je v tom, že sme pridali funkciu NOW & TIME VALUE.
Kedykoľvek spustíme tento kód, pozastaví alebo pozastaví vykonávanie po dobu 10 minút.
Ako pozastaviť kód VBA pomocou metódy spánku?
Spánok je vo VBA komplikovaná funkcia, pretože nejde o zabudovanú funkciu. Pretože nejde o zabudovaný modul, aby bolo možné ho používať, je potrebné do hornej časti nášho modulu pridať nasledujúci kód.
Kód:
# Ak VBA7 potom verejné vyhlásenie PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds ako LongPtr) 'pre 64 bitové systémy #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds tak dlho) # End If' pre 32 bitové systémy
Musíte iba skopírovať vyššie uvedený kód a vložiť ho do hornej časti modulu.

Dôvod, prečo musíme pridať vyššie uvedený kód, pretože SLEEP je funkcia VBA prezentovaná v súboroch DLL systému Windows, takže pred spustením podprocesu musíme deklarovať nomenklatúru.
Dobre, pozrime sa teraz na príklad funkcie SLEEP.
Kód:
Sub Pause_Example2 () Dim StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10 000) EndTime = Time MsgBox EndTime End Sub

Najskôr sme deklarovali dve premenné ako String.
Dim StartTime As String Dim EndTime As String
Potom sme premennej StartTime priradili funkciu TIME excel. Funkcia TIME vráti aktuálny čas podľa systému.
StartTime = čas
Potom sme priradili to isté, ktoré sa má zobrazovať v schránke správ.
MsgBox StartTime
Potom som použil funkciu SLEEP ako spánok (10 000).
Tu je 10 000 milisekúnd, čo je vo VBA 10 sekúnd.
Potom som konečne priradil ešte jednu funkciu TIME premennej EndTime .
Teraz som opäť napísal kód, ktorý ukazuje čas.
EndTime = čas
Zobrazí sa rozdiel medzi časom začatia a časom ukončenia.
Teraz vykonám kód a uvidím, aký je začiatočný čas.

Keď vykonám kód, môj systémový čas je 13:40:48 a môj kód teraz bude 10 sekúnd spať. Nakoniec je môj čas nasledovný.

Takto teda môžeme pozastaviť vykonávanie kódu na stanovený čas.