Funkcije čakanja in spanja VBA - Koda VBA za premor / zakasnitev

Ta vadnica bo pokazala, kako začasno ustaviti / odložiti kodo s funkcijami čakanja in spanja v VBA.

Ko ustvarjamo velike programe VBA, ki izvajajo veliko izračunov ali morda celo pokličejo zunanji program za izvajanje, bomo morda zahtevali, da se koda VBA za določen čas med izvajanjem zunanjega procesa ustavi. VBA ima na voljo nekaj načinov za to.

Uporaba metode Application.Wait

Če moramo začasno ustaviti izvajanje našega makra ali dokler ni dosežen določen čas, preden izvedemo naslednji korak, lahko uporabimo Aplikacija. Počakajte metoda. To bi lahko bilo na primer koristno, če smo avtomatizirali postopek prijave na spletno mesto in moramo počakati nekaj sekund, da se stran naloži, preden se makro še naprej izvaja.

Počakajte 1 sekundo

Če v makro vključite to vrstico spodaj, se bo njeno izvajanje zaustavilo za približno 1 sekundo:

1 Application.Wait (Zdaj + TimeValue ("0:00:01"))

Počakaj dokler

V nekaterih primerih boste morali počakati do določenega časa. S to vrstico spodaj se vaš makro ne bo nadaljeval pred 9. uro:

1 Prijava. Počakajte "09:00:00"

Upoštevajte, da je Aplikacija. Počakajte ne sprejema zamud, krajših od 1 sekunde.

Programiranje VBA | Generator kod deluje za vas!

Uporaba metode spanja

Če potrebujete natančnejši način zaustavitve makra, lahko uporabite način mirovanja.

Spanje je funkcija API -ja Windows, torej ni del VBA. Do njega lahko dostopate s posebno izjavo o izjavi.

Če uporabljate 64-bitno različico programa Microsoft Office, lahko naslednji stavek vstavite v nov modul ali na začetek modula (ne neposredno v podprogram), v katerem želite uporabiti funkcijo spanja:

1 Javno razglasite PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)

Pri 32-bitni različici uporabite to vrstico:

1 Javno razglasi Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)

Ko razglasite funkcijo spanja, imate v podprogramih dostop do nje, kot je ta:

1 Spanje 10000

S to vrstico bo vaš makro zaustavljen za 10.000 milisekund, to je 10 sekund.

Uporaba zanke z dogodki Do

Velika pomanjkljivost uporabe metod čakanja in spanja je, da uporabnik med čakanjem na nadaljevanje makra ne more storiti ničesar v Excelu. Uporabnik bi si lahko mislil, da se je Excel prenehal odzivati, medtem ko lahko uporabnik nato uporablja Ctl+odmor če želite prekiniti makro, s tem premagate namen, da v makro začasno ustavite.

Za premagovanje te težave lahko uporabimo zanko z metodo, imenovano DoEvents.

1234567 Javni pod test ()Dim i As LongZa i = 1 do 20000Razpon (“A1”). Vrednost = iDoEventsNaprej iEnd Sub

Medtem ko Excel izvaja zgornji makro, lahko uporabnik še naprej komunicira z Excelom - na primer lahko spremenimo zavihke ali oblikujemo celice - v bistvu se makro še naprej izvaja, vendar zaslon Excel ni zamrznjen. Podobno zanko bi lahko uporabili za ustvarjanje časovne funkcije v Excelu in vključitev DoEvents način, da odmrznete zaslon, medtem ko časovnik deluje.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave