VBA funkcija čakanja - Kako uporabiti način čakanja Excel VBA?

Funkcija čakanja Excel VBA

VBA Wait je vgrajena funkcija, s katero zaustavimo izvajanje kode za določen čas, je zelo podobna tistemu, kar počnemo v ukazu za spanje, in za zaustavitev kode uporabimo metodo application.wait.

Nekatere kode zahtevajo nekaj časa pred napredovanjem v naslednjo vrstico kode, ker je treba opraviti druge naloge. V teh primerih moramo ustaviti izvajanje kode in nekaj časa ustaviti, nato pa nadaljevati z izvajanjem. Kodo, ki jo je treba izvršiti, lahko zaustavimo na dva načina, pri čemer je prva metoda »Sleep«, druga pa »Wait«. V prejšnjem članku smo razpravljali o metodi »VBA Sleep« za zaustavitev kode VBA.

»Počakaj«, kot že samo ime pove, bo vseboval kodo makra, ki se izvede v določenem časovnem okviru. S to metodo moramo določiti čas, ko se mora naša koda zaustaviti. V nadaljevanju bomo videli primere.

Sintaksa funkcije WAIT je naslednja.

Omeniti moramo, koliko časa se mora naša koda zaustaviti. Kot vidite na koncu, piše Boolean. To pomeni, da rezultat vrne kot logične vrednosti, to je TRUE ali FALSE.

Dokler določeni čas ne pride, piše FALSE in trenutek, ko je določen čas prispel, vrne TRUE.

To je za razliko od funkcije SLEEP, ker je WAIT vgrajena funkcija, kjer je SLEEP funkcija Windows. Preden dostopimo do funkcije SLEEP, moramo na vrhu modula omeniti spodnjo kodo. A WAIT tega ne zahteva.

Koda:

#If VBA7 Potem javno izjavi PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'za 64-bitne sisteme #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' Za 32-bitne sisteme se konča, če

Primeri uporabe funkcije čakanja Excel VBA

Primer # 1

Recimo, da delate v Excelu sredi dneva ob 14:30:00 in želite, da se vaša koda zaustavi, dokler čas ne postane 14:40:00. Uporabite lahko spodnjo kodo.

Koda:

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

Koda bo ustavila vaš excel, dokler ne bo dosegel 14:40:00 v vašem operacijskem sistemu. Zagotavljanje takšnega časa je nevarno, ker ne delamo vedno od 14:30:00. Ves čas se spreminja.

Recimo, kadar koli izvajate kodo. Želite počakati 2 minuti, kako se na to sklicujete v svoji kodi?

Tako lahko s funkcijo VBA NOW s funkcijo TIME VALUE vnesemo določen čas iz trenutnega časa.

Samo, da vas spomnimo, funkcija NOW () vrne trenutni datum in uro v skladu z vašim računalniškim sistemom. Funkcija TIMEVALUE predstavlja čas od 00:00:00 do 23:59:59, tj. 23:59:59 PM v 24-urnem formatu. Vrednost niza pretvori v časovno vrednost.

Na primer NOW () + TIMEVALUE (00:02:30) pomeni trenutni čas + 2 min 30 sek.

Če je trenutni čas 14:25:30, potem postane 14:28:00.

Če želite zaustaviti ali zaustaviti izvajanje kode od trenutnega časa do naslednjih 10 minut, lahko uporabite spodnjo kodo.

Koda:

Sub Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub

Pomembno je, da za natančen premor uporabite funkcijo NOW (). V nasprotnem primeru obstaja velika verjetnost, da bo vaš delovni zvezek excel zaustavljen do polnoči. Vendar lahko iz metode začasne zaustavitve kadar koli pridemo s pritiskom na tipko Esc ali tipko Break.

2. primer

Počakajte 10 sekund vsakič, ko se zanka zažene

Metoda čakanja se dobro uporablja pri zankah. V nekaterih primerih boste morda morali počakati 10 sekund vsakič, ko se zanka zažene. Na primer, poglejte spodnje podatke.

Za izračun dobička = (prodaja - stroški) želite ustvariti zanko, po vsaki zanki pa počakajte 10 sekund, da preverite, ali je rezultat natančen ali ne. Spodnja koda bo to storila.

Koda:

Sub Wait_Example3 () Dim k kot celo število za k = 2 do 9 celic (k, 4). Vrednost = Celice (k, 2) - Celice (k, 3) Uporaba. : 10 ")) Naprej k Konec Sub

Ta koda bo izračunala stolpec dobička po vrsticah. Po zaključku prve vrstice bo počakal 10 sekund, preden bo izračunal naslednjo vrstico.

VBA Sleep vs VBA Počakajte

VBA SPANJE VBA ČAKAJ
To ni vgrajena funkcija VBA, za dostop do te funkcije potrebuje posebno kodo. Je vgrajena funkcija VBA in za dostop do te funkcije ne zahteva posebne kode.
Spanje kot časovni okvir zahteva milisekunde. Čakanje zahteva reden časovni okvir.
Kodo lahko zakasnimo v milisekundah. Zamudimo lahko le v celih sekundah.

Zanimive Članki...