VBA Pauze | Pārtrauciet VBA kodu, izmantojot miega un gaidīšanas funkciju

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. Lietojot šo funkciju, mums jāpiemin, līdz kuram laikam jāgaida mūsu kods.

Šo VBA Pause Excel veidni varat lejupielādēt šeit - VBA Pause Excel veidne

Piemēram, ja kods tiek izpildīts plkst. 13:00:00, ja laiks tiek norādīts kā “13:15:00”, makro darbosies 15 minūtes.

Tagad aplūkojiet 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, tā saka 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 tas gaidīs, kamēr mana sistēma laiks sasniedz 13:15:01.

Kad manas sistēmas laiks sasniegs šo laiku, tā 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 kodu darbināt dažādos laikos, 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 tālāk norādīto 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, bet vienīgā atšķirība ir tā, ka esam pievienojuši funkciju NOW & TIME VALUE.

Ikreiz, kad palaižam šo kodu, izpilde tiks apturēta vai apturēta 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, mūsu moduļa augšdaļā jāpievieno zemāk redzamais kods.

Kods:

# Ja VBA7, tad publiski paziņojiet par PtrSafe Sub Sleep Lib "kodolu32" (ByVal dwMilliseconds As LongPtr) "64 bitu sistēmām 

Jums vienkārši jākopē iepriekš minētais kods un jāielīmē moduļa augšdaļā.

Iemesls, kāpēc mums jāpievieno iepriekš minētais kods, jo SLEEP ir VBA funkcija, kas 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 SLEEP funkcijas 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 mēs esam piešķīruši funkciju TIME excel mainīgajam StartTime. 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ādas 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 izpildu kodu, sistēmas laiks ir 13:40:48, un tagad kods gulēs 10 sekundes. Beigās mans laiks ir šāds.

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


$config[zx-auto] not found$config[zx-overlay] not found