VBA laukimo funkcija | Kaip naudoti „Excel VBA“ laukimo metodą?

„Excel VBA“ laukimo funkcija

„VBA Wait“ yra įmontuota funkcija, naudojama pristabdyti kodo vykdymą nurodytam laikui, ji yra labai panaši į tai, ką darome miego komandoje, ir pristabdyti kodą, kurį naudojame application.wait.

Kai kurie kodai reikalauja kažkada prieš pereinant prie kitos kodo eilutės dėl kitų užduočių atlikimo. Tokiais atvejais turime sustabdyti vykdytiną kodą ir kurį laiką pristabdyti, tada tęsti vykdymą. Koda, kurią reikia vykdyti, galime pristabdyti dviem būdais: pirmasis yra „Miego“ metodas, o antrasis - „Palaukite“. Ankstesniame straipsnyje aptarėme „VBA Sleep“ metodą, kad pristabdytume VBA kodą.

„Palaukite“, nes pats pavadinimas sako, kad makro kodas bus vykdomas nurodytu laikotarpiu. Naudodami šį metodą turime nurodyti laiką, kurį mūsų kodas turėtų pristabdyti. Toliau pamatysime pavyzdžius.

Funkcijos WAIT sintaksė yra tokia.

Turime paminėti, kiek laiko mūsų kodas turėtų pristabdyti. Kaip matote pabaigoje, jis sako „Boolean“, tai reiškia, kad jis grąžina rezultatą kaip „Boolean“ reikšmes, ty TRUE arba FALSE.

Kol atėjo nurodytas laikas, jis sako „FALSE“, o nurodytą laiką - „TRUE“.

Tai skiriasi nuo SLEEP funkcijos, nes WAIT yra integruota funkcija, kai SLEEP yra „Windows“ funkcija. Prieš prisijungdami prie funkcijos SLEEP, modulio viršuje turime paminėti žemiau esantį kodą. Bet WAIT to nereikalauja.

Kodas:

# Jei VBA7, tada viešai paskelbti „PtrSafe Sub Sleep Lib“ „branduolys32“ (ByVal dwMilliseconds As LongPtr) '64 bitų sistemoms 

„Excel VBA Wait Function“ naudojimo pavyzdžiai

Šį „VBA Wait Excel“ šabloną galite atsisiųsti čia - „VBA Wait Excel“ šablonas

1 pavyzdys

Tarkime, kad dirbate „Excel“ dienos viduryje 14:30:00 ir norite, kad kodas būtų pristabdytas, kol laikas taps 14:40:00. Galite naudoti žemiau pateiktą kodą.

Kodas:

 Sub Wait_Example1 () Programa. Palaukite „14:40:00“ Pabaiga Sub 

Kodas sustabdys jūsų „Excel“ veikimą, kol jūsų operacinėje sistemoje laikas nepasieks 14:40:00. Pateikti tokį laiką yra pavojinga, nes mes ne visada dirbame nuo 14:30:00, jis nuolat kinta.

Tarkime, kai naudojate kodą, kurio norite palaukti 2 minutes, kaip tai nurodyti savo kode?

Taigi, norėdami įvesti nurodytą laiką nuo dabartinio laiko, galime naudoti funkciją VBA DABAR su TIME VALUE funkcija.

Norint priminti, kad funkcija DABAR () grąžina dabartinę datą ir laiką pagal jūsų kompiuterio sistemą. TIMEVALUE funkcija parodo laiką nuo 00:00:00 iki 23:59:59, ty 23:59:59 PM, 24 valandų formatu. Jis konvertuoja eilutės vertę į laiko vertę.

Pavyzdžiui, DABAR () + TIMEVALUE (00:02:30) reiškia Dabartinis laikas + 2 min 30 sek.

Jei dabartinis laikas yra 14:25:30, jis tampa 14:28:00.

Norėdami sustabdyti arba pristabdyti kodo vykdymą nuo dabartinio laiko iki kitų 10 minučių, galite naudoti žemiau pateiktą kodą.

Kodas:

 Sub Wait_Example2 () Programa. Palaukite (Now () + TimeValue ("00:10:00")) Pabaiga Sub 

Norint tiksliai pristabdyti, svarbu naudoti funkciją DABAR (), kitaip yra tikimybė, kad jūsų „Excel“ darbaknygė pristabdyta iki vidurnakčio. Tačiau mes galime išeiti iš pauzės metodo bet kuriuo metu paspausdami Esc arba Break mygtuką.

2 pavyzdys

Palaukite 10 sekundžių kiekvieną kartą, kai veikia ciklas

Laukimo būdas yra gerai naudojamas su kilpomis. Yra situacijų, kai gali tekti palaukti 10 sekundžių kiekvieną kartą, kai paleidžiamas ciklas. Pavyzdžiui, pažiūrėkite į toliau pateiktus duomenis.

Norėdami apskaičiuoti pelną = (pardavimai - kaina), norite sukurti ciklą, o po kiekvieno ciklo norite palaukti 10 sekundžių, kad patikrintumėte, ar rezultatas tikslus. Žemiau pateiktas kodas tai padarys.

Kodas:

 Palaukite_pavyzdys3 () Dim k kaip sveikoji k = 2–9 ląstelės (k, 4). Vertė = langeliai (k, 2) - ląstelės (k, 3) taikymas. Palaukite (Dabar () + TimeValue ("00:00 : 10 ")) Kitas k Pabaigos sub 

Šis kodas pelno stulpelį apskaičiuos eilutėmis. Užbaigus pirmąją eilutę, ji lauks 10 sekundžių, kol apskaičiuos kitą eilutę.

VBA miegas vs VBA laukimas

VBA miega VBA PALAUKITE
Tai nėra įmontuota VBA funkcija, norint pasiekti šią funkciją, reikia specialaus kodo. Tai yra įmontuota VBA funkcija, norint pasiekti šią funkciją nereikia specialaus kodo.
Miego režimas reikalauja milisekundžių. Laukti reikia įprasto laiko.
Mes galime atidėti kodą milisekundėmis Mes galime atidėlioti tik per kelias sekundes.

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