Apturiet VBA koda darbību
VBA pauze tiek izmantota, lai pauzētu koda izpildi uz noteiktu laiku un lai apturētu kodu VBA, kurā mēs izmantojam metodi application.wait.
Kad pēc kaut kā veikšanas veidojam lielus VBA projektus, mums, iespējams, būs jāgaida kādu laiku, lai veiktu citus uzdevumus. Kā šādos scenārijos apturēt makro kodu, lai veiktu savu uzdevumu? Mēs varam pauzēt VBA kodu uz noteiktu laiku, izmantojot divas funkcijas, un šīs funkcijas ir “Pagaidiet” un “Miega režīms”.

Kā apturēt kodu, izmantojot gaidīšanas metodi?
“Pagaidiet” ir funkcija, kuru mēs izmantojam VBA, lai makro darbinātu noteiktu laiku. Piemērojot šo funkciju, mums jāpiemin, līdz kuram laikam jāgaida mūsu kods.
Piemēram, ja jūs izpildāt kodu plkst. 13:00:00, ja laiku norādāt kā “13:15:00”, makro darbosies 15 minūtes.
Tagad apskatiet argumentu WAIT funkcija VBA.

Laika argumentā mums jāpiemin, kurā brīdī mūsu kodam vajadzētu apstāties vai gaidīt.
Piemēram, apskatiet zemāk redzamo VBA kodu.
Kods:
Apakšpauzes_piemērs1 () diapazons ("A1"). Vērtība = "Sveiki" diapazons ("A2"). Vērtība = "Welcome" lietojumprogramma. Pagaidiet ("13:15:00") Diapazons ("A3"). Vērtība = " Uz VBA "End Sub

Atcerieties, ka, palaižot šo kodu, mans sistēmas laiks ir 13:00:00. Tiklīdz es palaidīšu kodu, tas izpildīs pirmās divas rindas, ti
Diapazons ("A1"). Vērtība = "Labdien" un diapazons ("A2"). Vērtība = "Laipni lūdzam"
Bet, ja paskatās uz nākamo rindu, tajā ir rakstīts Application.Wait (“13:15:00”), tāpēc pēc šo līniju uzdevumu izpildes mans makro tiks apturēts 15 minūtes, ti, no 13:00:00, gaidīšu, kamēr mans sistēmas laiks sasniegs 13:15:01.
Kad mans sistēmas laiks sasniegs šo laiku, tas izpildīs atlikušās koda rindas.
Diapazons ("A3"). Vērtība = "Uz VBA"
Tomēr tas nav labākais pauzes koda praktizēšanas veids. Pieņemsim, ka jūs izmantojat kodu dažādos laikos, un tad mums jāizmanto funkcija NOW VBA ar funkciju TIME VALUE.
Funkcija Tagad atgriež pašreizējo datumu un laiku atbilstoši sistēmai, pie kuras strādājam.
Funkcija TIME Value tur laiku no 00:00:00 līdz 23:59:29.
Labi, pieņemsim, ka mums ir jāaptur kods 10 minūtes katru reizi, kad palaižam kodu, tad mēs varam izmantot zemāk redzamo kodu.
Kods:
Apakšpauzes_piemērs1 () diapazons ("A1"). Vērtība = "Sveiki" diapazons ("A2"). Vērtība = "Laipni lūdzam" lietojumprogramma. Pagaidiet (tagad () + TimeValue ("00:00:10")) diapazons (" A3 "). Vērtība =" Uz VBA "beigu apakšdaļa

Tas ir līdzīgs iepriekšējam kodam, taču vienīgā atšķirība ir tā, ka esam pievienojuši funkciju NOW & TIME VALUE.
Ikreiz, kad palaidīsim šo kodu, tas izpildi aizturēs vai apturēs uz 10 minūtēm.
Kā apturēt VBA kodu, izmantojot miega metodi?
Miega režīms ir sarežģīta funkcija VBA, jo tā nav iebūvēta funkcija. Tā kā tas nav iebūvēts, lai padarītu to pieejamu lietošanai, mums ir jāpievieno zemāk esošais kods mūsu moduļa augšdaļā.
Kods:
# Ja VBA7, tad publiski paziņojiet, ka PtrSafe Sub Sleep Lib "kodols32" (ByVal dwMilliseconds As LongPtr) "64 bitu sistēmām #Else Public Declare Sub Sleep Lib" kodols32 "(ByVal dwMillisekundes tik ilgi) #End If
Jums vienkārši jākopē iepriekš minētais kods un tas jāielīmē moduļa augšdaļā.

Iemesls, kāpēc mums jāpievieno iepriekš minētais kods, jo SLEEP ir VBA funkcija, kas tiek parādīta Windows DLL failos, tāpēc pirms apakšprocedūras sākšanas mums jādeklarē nomenklatūra.
Labi, tagad apskatīsim funkcijas SLEEP piemēru.
Kods:
Sub Pause_Example2 () Dim StartTime kā virkne Dim EndTime As virkne StartTime = Laiks MsgBox StartTime Miega režīms (10000) EndTime = Laiks MsgBox EndTime End Sub

Pirmkārt, mēs esam deklarējuši divus mainīgos kā virkni.
Dim StartTime kā virkne Dim EndTime kā virkne
Tad mainījumam StartTime esam piešķīruši funkciju TIME excel. Funkcija LAIKS atgriež pašreizējo laiku atbilstoši sistēmai.
StartTime = laiks
Tad mēs esam piešķīruši to pašu, kas jāparāda ziņojumu lodziņā.
MsgBox StartTime
Tad es esmu izmantojis SLEEP funkciju kā miega režīms (10000).
Šeit 10000 ir milisekundes, kas ir vienāds ar 10 sekundēm VBA.
Tad beidzot mainīgajam EndTime esmu piešķīris vēl vienu funkciju TIME .
Tagad atkal esmu uzrakstījis kodu, lai parādītu laiku.
EndTime = laiks
Tas parādīs atšķirību starp sākuma laiku un beigu laiku.
Tagad es izpildīšu kodu un redzēšu, kāds ir sākuma laiks.

Kad es izpildu kodu, mans sistēmas laiks ir 13:40:48, un tagad mans kods gulēs 10 sekundes. Galu galā mans laiks ir šāds.

Tātad, līdzīgi šim, mēs varam apturēt koda izpildi uz noteiktu laiku.