Szüneteltesse a VBA-kód futtatását
A VBA szünet arra szolgál, hogy szüneteltesse a kódot egy meghatározott ideig, és szüneteltesse a kódot a VBA-ban, amelyet az application.wait módszerrel használunk.
Ha nagy VBA-projekteket építünk valamilyen feladat elvégzése után, lehet, hogy egy ideig várnunk kell más feladatok elvégzésére. Ilyen esetekben hogyan szüneteltethetjük a makrokódot a feladatunk elvégzéséhez? Két funkció használatával szüneteltethetjük a VBA kódot egy meghatározott időtartamra, ezek a funkciók: „Várjon” és „Alvó”.

Hogyan lehet szüneteltetni a kódot a várakozási módszerrel?
A „Várjon” az a funkció, amelyet a VBA-ban használunk a makró futásának egy meghatározott ideig történő megtartására. Ennek a függvénynek az alkalmazásával meg kell említenünk, hogy a kódunk mennyi ideig várjon.
Például, ha a kódot 13: 00: 00-kor hajtja végre, ha az időt 13: 15: 00-ként adja meg, akkor 15 percig tartja a futó makrót.
Most nézze meg a WAIT függvény argumentumát a VBA-ban.

Az időérvben meg kell említenünk, hogy a kódunknak mikor kell szünetelnie vagy várnia.
Nézze meg például az alábbi VBA kódot.
Kód:
Sub Pause_Példa1 () Tartomány ("A1"). Érték = "Hello" tartomány ("A2"). Érték = "Welcome" alkalmazás. Várjon ("13:15:00") Tartomány ("A3"). Érték = " A VBA-hoz "End Sub

Ne feledje, hogy a kód futtatása közben a rendszeridőm 13:00:00. Amint futtatom a kódot, végrehajtja az első két sort, azaz
Tartomány ("A1"). Érték = "Hello" és tartomány ("A2"). Érték = "Welcome"
De ha megnézzük a következő sort, akkor az Application.Wait („13:15:00”) felirat olvasható, így a soros feladatok végrehajtása után a makróm 15 percig szünetel, azaz 13:00:00 -tól. várni fog, amíg a rendszeridőm eléri a 13:15:01 -et.
Amint a rendszeridőm eléri ezt az időt, végrehajtja a fennmaradó kódsorokat.
Tartomány ("A3"). Érték = "VBA-hoz"
Ez azonban nem a szünetkód gyakorlásának legjobb módja. Tegyük fel, hogy a kódot különböző időpontokban futtatja, és akkor a NOW VBA függvényt kell használnunk TIME VALUE funkcióval.
A Now függvény visszaadja az aktuális dátumot és időpontot a rendszeren, amelyen dolgozunk.
TIME Value függvény az időt 00:00:00 és 23:59:29 között tartja.
Ok, tegyük fel, hogy 10 percig szüneteltetnünk kell a kódot, valahányszor futtatjuk a kódot, akkor használhatjuk az alábbi kódot.
Kód:
Sub Pause_Példa1 () Tartomány ("A1"). Érték = "Hello" tartomány ("A2"). Érték = "Welcome" alkalmazás. Várjon (Most () + TimeValue ("00:00:10")) Tartomány (" A3 "). Érték =" A VBA-hoz "End Sub

Ez hasonló az előző kódhoz, de az egyetlen különbség az, hogy hozzáadtuk a MOST & IDŐ ÉRTÉK függvényt.
Amikor ezt a kódot futtatjuk, 10 percig megtartja vagy szünetelteti a végrehajtást.
Hogyan lehet szüneteltetni a VBA kódot alvó móddal?
Az alvás bonyolult funkció a VBA-ban, mert nem beépített funkció. Mivel ez nem beépített annak érdekében, hogy elérhetővé tegye használatát, hozzá kell adnunk az alábbi kódot a modulunk tetejéhez.
Kód:
# Ha VBA7, akkor nyilvánosan deklarálja a PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) "64 bites rendszerekhez
Csak át kell másolnia a fenti kódot, és be kell illesztenie a modul tetejére.

Az ok, amiért hozzá kell adnunk a fenti kódot, mert a SLEEP egy VBA függvény, amelyet a Windows DLL fájlok mutatnak be, ezért az alfolyamat megkezdése előtt deklarálnunk kell a nómenklatúrát.
Ok, most nézzük meg a SLEEP függvény példáját.
Kód:
Sub Pause_Példa2 () Dim StartTime mint karakterlánc Dim EndTime As karakterlánc StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub

Először két változót deklaráltunk String-nek.
Dim StartTime as String A Dim EndTime as String
Ezután hozzárendeltük a TIME excel függvényt a StartTime változóhoz. A TIME függvény az aktuális időt adja vissza a rendszer szerint.
StartTime = Idő
Ezután hozzárendeltük ugyanazt, hogy megjelenjen az üzenet mezőben.
MsgBox StartTime
Ezután alvásként (10000) alkalmaztam a SLEEP funkciót.
Itt 10000 ezredmásodperc, ami 10 másodpercnek felel meg a VBA-ban.
Ezután végül még egy TIME függvényt rendeltem az EndTime változóhoz .
Most megint írtam egy kódot az idő megjelenítésére.
EndTime = Idő
Ez megmutatja a különbséget a kezdési és a befejezési idő között.
Most végrehajtom a kódot, és megnézem, mi a kezdési idő.

Amikor végrehajtom a kódot, a rendszeridőm 13:40:48, és a kódom 10 másodpercig alszik. Végül az én időm a következő.

Tehát így szüneteltethetjük a kód végrehajtását egy meghatározott ideig.