VBA pagaidīšanas funkcija | Kā izmantot Excel VBA gaidīšanas metodi?

Excel VBA gaidīšanas funkcija

VBA Wait ir iebūvēta funkcija, ko izmanto, lai apturētu koda izpildi uz noteiktu laiku, tā ir ļoti līdzīga tai, ko mēs darām miega komandā, un lai apturētu kodu, kuru izmantojam metodi application.wait.

Dažiem kodiem ir nepieciešams laiks, lai pārietu uz nākamo koda rindu citu veicamo uzdevumu dēļ. Šādos gadījumos mums ir jāpārtrauc izpildāmais kods un kādu laiku jāpārtrauc, pēc tam jāturpina izpilde. Mēs varam apturēt izpildāmo kodu divos veidos: pirmais ir “miega” metode un otrais - “gaidīšanas” metode. Iepriekšējā rakstā mēs esam apsprieduši “VBA miega” metodi, lai apturētu VBA kodu.

“Pagaidiet”, kā pats nosaukums saka, ka makro kods tiks izpildīts noteiktā laika posmā. Izmantojot šo metodi, mums jānorāda laiks, kad mūsu kodam vajadzētu būt pauzei, mēs redzēsim piemērus tālāk.

Funkcijas WAIT sintakse ir šāda.

Mums jāpiemin, cik ilgi mūsu kodam vajadzētu būt pauzei. Kā redzat beigās, tas saka Būla, tas nozīmē, ka tas atgriež rezultātu kā Būla vērtības, ti, PATIESA vai PATIESA.

Līdz brīdim, kad ir pienācis norādītais laiks, tas saka FALSE, un brīdī, kad pienāca norādītais laiks, tas atgriež TRUE.

Tas atšķirībā no funkcijas SLEEP, jo WAIT ir iebūvēta funkcija, kur SLEEP ir Windows funkcija. Pirms mēs piekļūstam SLEEP funkcijai, moduļa augšpusē jāpiemin zemāk redzamais kods. Bet WAIT to neprasa.

Kods:

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

Excel VBA gaidīšanas funkcijas izmantošanas piemēri

Šo VBA Wait Excel veidni varat lejupielādēt šeit - VBA Wait Excel Template

1. piemērs

Pieņemsim, ka strādājat excel dienas vidū plkst. 14:30:00 un vēlaties, lai kods tiktu apturēts, līdz laiks kļūst 14:40:00. Jūs varat izmantot zemāk esošo kodu.

Kods:

 Sub Wait_Example1 () Application. Pagaidiet "14:40:00" End Sub 

Kods pārtrauks jūsu Excel darbību, līdz laiks operētājsistēmā sasniegs 14:40:00. Šāda laika nodrošināšana ir bīstama, jo mēs ne vienmēr strādājam no pulksten 14:30:00, tas visu laiku mainās.

Pieņemsim, ka ikreiz, kad izmantojat kodu, kuru vēlaties gaidīt 2 minūtes, kā to norādīt savā kodā?

Tātad, mēs varam izmantot funkciju VBA TAGAD ar funkciju LAIKA VĒRTĪBA, lai ievadītu norādīto laiku no pašreizējā laika.

Tikai, lai atgādinātu, ka funkcija NOW () atgriež pašreizējo datumu un laiku atbilstoši jūsu datorsistēmai. Funkcija TIMEVALUE 24 stundu formātā norāda laiku no 00:00:00 līdz 23:59:59, ti, 23:59:59 PM. Tas pārveido virknes vērtību par laika vērtību.

Piemēram, NOW () + TIMEVALUE (00:02:30) nozīmē Pašreizējais laiks + 2 min 30 sek.

Ja pašreizējais laiks ir 14:25:30, tad tas kļūst par 14:28:00.

Lai apturētu vai apturētu koda izpildi no pašreizējā laika līdz nākamajām 10 minūtēm, varat izmantot tālāk norādīto kodu.

Kods:

 Apakšdaļa Pagaidiet_piemērs2 () Lietojumprogramma. Pagaidiet (Tagad () + TimeValue ("00:10:00")) Beigu apakšdaļa 

Precīzai pauzei ir svarīgi izmantot funkciju NOW (), pretējā gadījumā pastāv iespēja, ka jūsu Excel darbgrāmata ir apturēta līdz pusnaktij. Tomēr mēs varam izkļūt no pauzes metodes jebkurā brīdī, nospiežot taustiņu Esc vai pārtraukuma taustiņu.

2. piemērs

Gaidiet 10 sekundes Katru reizi, kad darbojas cilpa

Gaidīšanas metodi labi izmanto ar cilpām. Ir situācijas, kad jums, iespējams, būs jāgaida 10 sekundes katru reizi, kad darbojas cilpa. Piemēram, apskatiet tālāk minētos datus.

Lai aprēķinātu Peļņa = (Pārdošana - Izmaksas), kuru vēlaties izveidot, un pēc katras cilpas vēlaties gaidīt 10 sekundes, lai pārbaudītu, vai rezultāts ir pareizs vai nē. Zemāk esošais kods to izdarīs.

Kods:

 Apakšgaida_piemērs3 () Dim k kā skaitlis k = 2 līdz 9 šūnām (k, 4). Vērtība = Šūnas (k, 2) - Šūnas (k, 3) Pieteikums. Pagaidiet (Tagad () + TimeValue ("00:00 : 10 ")) Nākamais k Beigu apakš 

Šis kods aprēķinās peļņas kolonnu pa rindām. Pēc pirmās rindas pabeigšanas tā gaidīs 10 sekundes, pirms aprēķinās nākamo rindu.

VBA Miegs vs VBA Pagaidiet

VBA gulēt VBA GAIDĪT
Tā nav iebūvēta VBA funkcija, lai piekļūtu šai funkcijai, nepieciešams īpašs kods. Tā ir iebūvēta VBA funkcija, lai piekļūtu šai funkcijai, nav nepieciešams īpašs kods.
Miega režīms prasa milisekundes kā laika grafiku. Gaidīšanai nepieciešams regulārs laika grafiks.
Mēs varam aizkavēt kodu milisekundēs Mēs varam aizkavēties tikai veselās sekundēs.

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