VBA premor - Zaustavite kodo VBA s programom Počakajte in preklopite v stanje spanja

Kazalo:

Anonim

Začasna koda v VBA

Sploh se sprašujem, kako bi bilo super, če bi lahko izvajali kodo, kot to dovoljuje čas, saj bi do takrat uspeli dokončati drugo delo in narediti te podatke pripravljene za nadaljnje delo. To je potreba po kakršnih koli nalogah, pri katerih moramo zagnati en niz kode in delati na drugih stvareh glede na zahtevo kode in dokler ne začne teči drugi del kode, bomo pripravljeni na podatke, ki jih potrebujemo za obdelavo s ista koda. To je mogoče storiti z uporabo funkcije VBA v načinu mirovanja in čakanja. S spanjem in čakanjem lahko kodo kadar koli zaustavimo. Čas je lahko v sekundah ali čas na uro.

Sintaksa prekinitve VBA v Excelu

Sintaksa za pavzo VBA je naslednja:

Primeri za zaustavitev kode VBA v Excelu

Spodaj so različni primeri začasne zaustavitve kode VBA v Excelu.

Predlogo VBA Pause Excel lahko prenesete tukaj - VBA Pause Excel Predloga

Primer # 1 - VBA Premor

V tem primeru bomo videli, kako deluje VBA Wait. Kot lahko vidimo, aplikacija Wait omogoča Time kot Boolean. Kar pomeni, da če je vrednost, ki jo hranimo, pravilna, bi jo dobili kot TRUE FALSE.

Če želite videti, kako bo VBA Pause deloval z aplikacijo Wait v VBA,

1. korak: Najprej bi potrebovali modul, v katerega bomo za to napisali kodo. Torej, pojdite na meni Vstavljanje in izberite Module iz spustne možnosti, kot je prikazano spodaj.

2. korak: Zdaj napišite podkategorijo v ime VBA Pause ali v katerem koli drugem imenu, kot je prikazano spodaj.

Koda:

 Sub VBAPause1 () Konec Sub 

Za pavzo VBA potrebujemo nekaj besedila, ki bi ga radi natisnili s pavzo. Razmislimo o tem, da je besedilo " Get … Set … Go … … “. Tako bomo izbrali 3 različne celice, kjer bomo te besedilne besede hranili ločeno v vsaki celici.

Korak 3: Izberite prvi obseg celice kot A1 ali katero koli drugo celico po izbiri in ji dodelite vrednost, izberite vrednost vrednosti in ji dodajte vrednost, kot smo določili zgoraj. Ali pa izberite poljubno vrednost po izbiri.

Koda:

 Pod VBAPause1 () Obseg ("A1"). Vrednost = "Pridobite …" Konec pod 

4. korak: Preostali vrednosti dodelite na enak način, kot smo to storili za prvo vrednost. Tu izbiramo celice od A1 do C1 kot naš razpon.

Koda:

 Pod VBAPause1 () Obseg ("A1"). Vrednost = "Pridobite …" Obseg ("B1"). Vrednost = "Nastavite …" Obseg ("C1"). Vrednost = "Pojdi !!! !!!" Končni pod 

5. korak: V vsakem primeru bi, če zaženemo celotno kodo, dobili vse vrednosti Get. Nastavite … Pojdi !!! naenkrat od celice A1 do C1, kot je prikazano spodaj.

6. korak: Če želimo prekiniti med celotno pavzo, bi morali uporabiti aplikacijo Počakajte, kot je prikazano spodaj. To aplikacijo bomo uporabljali tik nad zadnjim razponom.

Koda:

 Pod VBAPause1 () Obseg ("A1"). Vrednost = "Pridobite …" Obseg ("B1"). Vrednost = "Nastavi …" Aplikacija. Počakajte (obseg ("C1"). Vrednost = "Pojdi!) !! "Končaj Sub 

7. korak: V oklepaj aplikacije Wait lahko zapišemo čas v 24HRs formatu ali v AM / PM formatu. Razmišljamo o formatu 24HR. Zdaj zapišite čas v formatu HH: MM: SS, ko želimo po pavzi zagnati preostalo kodo.

Koda:

 Pod VBAPause1 () Obseg ("A1"). Vrednost = "Pridobite …" Obseg ("B1"). Vrednost = "Nastavi …" Uporaba. Počakajte ("12: 26: 00") Obseg ("C1") .Value = "Pojdi !!! !!!" Končni pod 

8. korak: Zdaj sestavite kodo in jo zaženite znova. Videli bomo, da v celici A1 dobimo vrednost celice kot »Pridobite …« in še vedno kurzor deluje v čakanju.

Korak 9: In ko ura doseže ob 12:25 uri potem, se bodo preostale vrednosti celic v celicah B1 in C1 spet prikazale, kot kaže spodaj.

Primer # 2 - VBA premor

Obstaja še en način, s katerim lahko kodo zaustavimo, ne da bi večkrat dodali ali spremenili čas v aplikaciji Wait. Za to bi navedli isto kodo, ki smo jo videli v primeru-1.

1. korak: Zdaj v oklepaj aplikacije Wait napišite Now () s TimeValue, ki ga želimo podati. Razmislimo o pavzi 30 sekund.

Koda:

 Pod VBAPause2 () Obseg ("A1"). Vrednost = "Pridobite …" Obseg ("B1"). Vrednost = "Nastavi …" Aplikacija. Počakajte (Now () + TimeValue ("00:00:30") ) Domet ("C1"). Vrednost = "Pojdi !!! !!!" Končni pod 

Korak 2: Ko zaženemo kodo, bo VBA upošteval trenutni čas in dodal 30 sekund premora. In delovalo bo na podoben način, kot je delovalo v primeru-1. Za preverjanje zaženite kodo.

Najprej bomo dobili vrednost prve celice pri A1.

Po 30 sekundah pavze bo ostalo v vrednostih celic B1 in C1.

Primer # 3 - VBA Premor

V tem primeru bomo videli, kako deluje VBA Pause z aplikacijo Sleep . Spodaj je sintaksa aplikacije Sleep, ki omogoča ByVal dwMillisekunde le kot LongPtr .

Zdaj je ta vrednost dejansko v VBA. Vnesti moramo vnaprej izdelano kodo, ki je na voljo v dokumentih MS Docs, kot je prikazano spodaj.

1. korak: Zdaj napišite podkategorijo za VBA Pause, kot je prikazano spodaj.

Koda:

 Sub VBAPause3 () Konec Sub 

2. korak: za to bi morali definirati dve spremenljivki za čas zagona in spanja kot niz, kot je prikazano spodaj.

Koda:

 Sub VBAPause3 () Dim se začne kot niz Dim zaspi kot niz strune Sub 

3. korak: Prvi spremenljivki, ki se začne, dodelite čas.

Koda:

 Sub VBAPause3 () Dim začenja kot niz Dim za spanje kot niz začenja = Time End Sub 

4. korak: In uporabite Msgbox za ogled vrednosti, ki je shranjena v spremenljivki Starting.

Koda:

 Pod VBAPause3 () Zagon zatemnitve kot niz Zatemnitev spanja kot zagon niza = čas MsgBox začetni konec pod 

5. korak: Zdaj uporabite aplikacijo Sleep in dodelite število milisekund, dokler ne želimo funkcije preklopiti.

Koda:

 Pod VBAPause3 () Dim se začne kot niz Dim zaspi kot niz se začne = čas MsgBox začne spanje = časovni konec pod 

6. korak: Sedaj na podoben način dodelite aplikaciji Time drugi spremenljivki Sleeping . In uporabite MsgBox za ogled vrednosti, shranjene v spremenljivki Sleeping, kot je prikazano spodaj.

Koda:

 Pod VBAPause3 () Dim začenja kot niz Dim spanja kot vrvice se začne = čas MsgBox zagon spanja = čas MsgBox spanja konec pod 

Končno sestavite kodo in zaženite kodo s klikom na gumb Play, ki se nahaja pod menijsko vrstico, kot je prikazano spodaj. Dobili bomo polje s sporočilom s časom, ki bo naš začetni čas.

Ko enkrat kliknemo V redu, bomo po 5000 milisekundah videli še eno okence s sporočilom, kot je prikazano spodaj.

Čas spanja se bo začel takoj, ko bomo kliknili gumb Ok. Ni časovna razlika med začetnim in spalnim časom. Pravzaprav je čas, ko v oknu prvega sporočila kliknemo gumb V redu.

Prednosti VBA premora

  • Zelo koristno je, kadar imamo več funkcij, ki jih lahko izvajamo z nekim časovnim intervalom.
  • To je mogoče uporabiti za namene analize in izračuna.

Stvari, ki jih je treba zapomniti

  • Procesa, kot je pavza VBA, ni mogoče izvesti s snemanjem makra.
  • Vedno je bolje uporabiti postopek, prikazan v primeru-2 za aplikacijo Počakajte, kjer bomo varni pred spreminjanjem časa znova in znova, namesto da bi samo zadržali premor nekaj sekund po trenutnem času.
  • Način mirovanja iz primera 3 omogoča le nekaj sekund
  • Koda prednadelave, prikazana na začetku primera 3, je pomemben del, saj bo zadoščala sintaksi aplikacije Sleep.

Priporočeni članki

To je vodnik za premor VBA. Tukaj smo razpravljali o tem, kako lahko kodo kadar koli zaustavimo z aplikacijo Wait and Sleep. Ogledate si lahko tudi druge naše predlagane članke -

  1. Kako uporabljati številčno funkcijo VBA?
  2. Ustvarjanje kombinirane škatle v Excelu
  3. V Excel vstavite CheckBox
  4. VBA UCASE funkcija v Excelu