VBA ootefunktsioon | Kuidas kasutada Exceli VBA ootemeetodit?

Exceli VBA ootefunktsioon

VBA Wait on sisseehitatud funktsioon, mida kasutatakse koodi täitmise peatamiseks määratud aja jooksul, see on väga sarnane sellele, mida me teeme unerežiimis ja peatame koodi, mida kasutame meetodil application.wait.

Mõned koodid vajavad millalgi enne järgmisele koodireale liikumist muude ülesannete täitmise tõttu. Nendel juhtudel peame käivitatava koodi peatama ja mõneks ajaks pausi pidama ning seejärel täitmisega jätkama. Täidetava koodi saab peatada kahel viisil: esimene on “Sleep” meetod ja teine ​​“Wait”. Oma varasemas artiklis oleme arutanud VBA-koodi peatamise meetodit “VBA Sleep”.

"Oota", kuna nimi ise ütleb, et see hoiab täidetavat makrokoodi määratud aja jooksul. Selle meetodi abil peame määrama aja, mille meie kood peaks peatama, näeme järgmisi näiteid.

Funktsiooni WAIT süntaks on järgmine.

Peame mainima, kui kaua peaks meie kood peatuma. Nagu näete lõpus, loeb Boolean, see tähendab, et see tagastab tulemuse Boole'i ​​väärtustena, st TRUE või FALSE.

Kuni määratud aja saabumiseni öeldakse FALSE ja määratud aja saabudes väärtuseks TRUE.

See on erinevalt funktsioonist SLEEP, kuna WAIT on sisseehitatud funktsioon, kus SLEEP on Windowsi funktsioon. Enne funktsiooni SLEEP juurde pääsemist peame mainima allpool olevat koodi mooduli ülaosas. Kuid WAIT seda ei vaja.

Kood:

# Kui VBA7, siis avalik deklareerige PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) "64-bitiste süsteemide jaoks # Muu avalik deklareerige Sub Sleep Lib" kernel32 "(ByVal dwMillisekundid nii kaua)" 32-bitiste süsteemide jaoks lõppeb kui 

Näited Exceli VBA ootefunktsiooni kasutamiseks

Selle VBA Oota Exceli malli saate alla laadida siit - VBA Oota Exceli malli

Näide 1

Oletame, et töötate Exceli keskpäeval kell 14:30:00 ja soovite, et teie kood peatataks, kuni kellaajaks saab 14:40:00. Võite kasutada allolevat koodi.

Kood:

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

Kood peatab teie Exceli töötamise seni, kuni teie operatsioonisüsteemis on kell 14:40:00. Niisuguse aja pakkumine on ohtlik, sest me ei tööta alati alates kella 14.30-st, see varieerub kogu aeg.

Oletame, et kui kasutate koodi, mida soovite 2 minutit oodata, siis kuidas seda oma koodis kasutada?

Niisiis, saame kasutada funktsiooni VBA NOW koos TIME VALUE funktsiooniga, et sisestada praegusest ajast määratud aeg.

Funktsioon NOW () tuletab meelde praeguse kuupäeva ja kellaaja vastavalt arvutisüsteemile. Funktsioon TIMEVALUE tähistab ajavahemikku 00:00:00 kuni 23:59:59, st 23:59:59 PM 24 tunni vormingus. See teisendab stringi väärtuse ajaväärtuseks.

Näiteks NOW () + TIMEVALUE (00:02:30) tähendab praegust aega + 2 min 30 sek.

Kui praegune kellaaeg on 14:25:30, saab sellest 14:28:00.

Koodi käivitamise peatamiseks või peatamiseks praegusest kellaajast järgmise 10 minutini saate kasutada allolevat koodi.

Kood:

 Alam Oota_Näide2 () Rakendus. Oota (nüüd () + TimeValue ("00:10:00")) Lõpeta alam 

Täpse pausi jaoks on oluline kasutada funktsiooni NOW (), vastasel juhul on tõenäoline, et teie Exceli töövihik peatatakse keskööni. Pausimeetodist saame aga välja tulla igal ajahetkel, vajutades klahvi Esc või katkestusklahvi.

Näide 2

Oodake 10 sekundit iga kord, kui aas töötab

Ootamismeetodit kasutatakse silmustega hästi. On olukordi, kus peate võib-olla ootama 10 sekundit iga kord, kui silmus jookseb. Näiteks vaadake allolevaid andmeid.

Kasumi arvutamiseks = (Müük - Maksumus), mille soovite luua, ja pärast iga tsüklit soovite oodata 10 sekundit, et kontrollida, kas tulemus on täpne või mitte. Seda teeb järgmine kood.

Kood:

 Alamoot :_näide3 () Dim k täisarvuna k = 2 kuni 9 lahtrit (k, 4). Väärtus = Lahtrid (k, 2) - Lahtrid (k, 3) Rakendus. Oodake (Nüüd () + TimeValue ("00:00 : 10 ")) Järgmine k End Sub 

See kood arvutab tulude veeru rida realt. Pärast esimese rea valmimist ootab see 10 sekundit, enne kui arvutab järgmise rea.

VBA uni vs VBA oot

VBA MAGA VBA OOTA
See pole VBA sisseehitatud funktsioon, selle funktsiooni kasutamiseks on vaja spetsiaalset koodi. See on sisseehitatud VBA funktsioon, ei vaja selle funktsiooni kasutamiseks spetsiaalset koodi.
Uni vajab ajaraamistikuks millisekundit. Ootamiseks on vaja regulaarset ajakava.
Võime koodi viivitada millisekundites Me võime edasi lükata vaid sekunditega.

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