Peatage VBA-koodi käitamine
VBA pausi kasutatakse koodi täitmise peatamiseks määratud aja jooksul ja koodi peatamiseks VBA-s, mida kasutame meetodil application.wait.
Kui ehitame pärast millegi sooritamist suuri VBA-projekte, peame võib-olla mõnda aega ootama, et teha muid ülesandeid. Kuidas peatada sellistes stsenaariumides makrokoodi oma ülesande täitmiseks? Saame peatada VBA-koodi kindlaksmääratud ajaperioodiks, kasutades kahte funktsiooni ja need funktsioonid on „Oota“ ja „Une“.

Kuidas ooterežiimi abil koodi peatada?
"Oota" on funktsioon, mida kasutame VBA-s makro töötamiseks kindla aja jooksul. Selle funktsiooni rakendamisel peame mainima, mis ajani peaks meie kood ootama.
Näiteks kui täidate koodi kell 13:00:00 ja kui sisestate kellaajaks „13:15:00”, hoiab see makrot 15 minutit.
Nüüd vaadake funktsiooni WAIT argumenti VBA-s.

Ajalises argumendis peame mainima, millal peaks meie kood peatuma või ootama.
Näiteks vaadake allpool olevat VBA-koodi.
Kood:
Alampausi_näide1 () vahemik ("A1"). Väärtus = "Tere" vahemik ("A2"). Väärtus = "Tere tulemast" rakendus. Oodake ("13:15:00") Vahemik ("A3"). Väärtus = " VBA-le "Lõpp-alam

Pidage meeles, et selle koodi käivitamise ajal on minu süsteemiaeg 13:00:00. Niipea, kui ma koodi käivitan, täidab see kaks esimest rida, st
Vahemik ("A1"). Väärtus = "Tere" ja vahemik ("A2"). Väärtus = "Tere tulemast"
Kuid kui vaatate järgmist rida, siis seal on kirjas Application.Wait (“13:15:00”), nii et pärast nende ridade ülesannete täitmist peatatakse minu makro 15 minutiks, st alates 13:00:00. ootan, kuni mu süsteemi aeg jõuab 13:15:01.
Kui mu süsteemi aeg on selle aja kätte jõudnud, täidab ta ülejäänud koodiread.
Vahemik ("A3"). Väärtus = "VBA-le"
See pole aga parim viis pausikoodi harjutamiseks. Oletame, et käitate koodi erinevatel aegadel ja siis peame kasutama funktsiooni NÜÜD VBA funktsiooniga TIME VALUE.
Funktsioon Now tagastab praeguse kuupäeva ja kellaaja vastavalt süsteemile, millega töötame.
Funktsioon TIME Value hoiab aega vahemikus 00:00:00 kuni 23:59:29.
Olgu, oletame, et peame koodi käivitamisel 10 minutit peatama, siis saame kasutada allolevat koodi.
Kood:
Alampausi_näide1 () vahemik ("A1"). Väärtus = "Tere" vahemik ("A2"). Väärtus = "Tere tulemast" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Väärtus =" VBA-le "lõpp-alam

See sarnaneb eelmise koodiga, kuid ainus erinevus on see, et oleme lisanud funktsiooni KOHE & AJA VÄÄRTUS.
Alati, kui seda koodi käivitame, hoiab see täitmist 10 minutit või peatab selle.
Kuidas peatada VBA-kood unerežiimi abil?
Uni on VBA-s keeruline funktsioon, kuna see pole sisseehitatud funktsioon. Kuna see pole kasutamiseks sisseehitatud, peame lisama allpool oleva koodi oma mooduli ülaossa.
Kood:
# Kui VBA7 siis avalikult deklareeritakse PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMillisekundit kui pikk Ptr) "64-bitiste süsteemide jaoks #Else Public Declare Sub Sleep Lib" kernel32 "(ByVal dwMillisekundid nii kaua) #End If" 32-bitiste süsteemide jaoks
Peate lihtsalt kopeerima ülaltoodud koodi ja kleepima selle mooduli ülaossa.

Põhjus, miks peame ülaltoodud koodi lisama, kuna SLEEP on Windowsi DLL-failides esitatud VBA-funktsioon, peame enne alamprotseduuri alustamist deklareerima nomenklatuuri.
Ok, vaatame nüüd funktsiooni SLEEP näidet.
Kood:
Alam Paus_Näide2 () Dim StartTime stringina Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub

Esiteks oleme deklareerinud stringiks kaks muutujat.
Hämarda algusaeg stringina Hämarda lõpuaeg stringina
Seejärel määrasime StartTime muutujale funktsiooni TIME excel. Funktsioon TIME tagastab praeguse kellaaja vastavalt süsteemile.
StartTime = aeg
Siis oleme määranud sama, mida kuvatakse sõnumikastis.
MsgBox StartTime
Siis olen rakendanud SLEEP-funktsiooni unerežiimina (10000).
Siin on 10000 millisekundit, mis võrdub 10 sekundiga VBA-s.
Siis lõpuks omistasin muutujale EndTime veel ühe funktsiooni TIME .
Nüüd olen jälle kirjutanud koodi, mis näitab aega.
EndTime = aeg
See näitab erinevust algus- ja lõpuaja vahel.
Nüüd täidan koodi ja vaatan, mis on algusaeg.

Koodi käivitamisel on mu süsteemiaeg 13:40:48 ja nüüd magab kood 10 sekundit. Lõpuks on minu aeg järgmine.

Niisiis võime nii peatada koodi käivitamise määratud aja jooksul.