VBA-pause | Sett VBA-kode på pause ved hjelp av hvilemodus og ventefunksjon

Sett VBA-koden på pause fra å kjøre

VBA Pause brukes til å sette koden på pause fra å kjøre den i en spesifisert tid og for å sette en kode i VBA på pause, bruker vi metoden application.wait.

Når vi bygger store VBA-prosjekter etter å ha utført noe, kan det hende vi må vente litt på å gjøre andre oppgaver. I slike scenarier, hvordan stopper vi makrokoden for å gjøre oppgaven vår? Vi kan stoppe VBA-koden i en spesifisert tidsperiode ved å bruke to funksjoner, og disse funksjonene er "Vent" og "Hvilemodus".

Hvordan pause koden ved hjelp av ventemetoden?

"Vent" er funksjonen vi bruker i VBA for å holde makroen i gang i en bestemt periode. Ved å bruke denne funksjonen må vi nevne til hvilken tid koden skal vente.

Du kan laste ned denne VBA Pause Excel-malen her - VBA Pause Excel-malen

Hvis du for eksempel utfører koden kl 13:00:00 hvis du oppgir tiden som “13:15:00”, vil den holde makroen i 15 minutter.

Nå, se på argumentet om WAIT-funksjonen i VBA.

I tidsargument må vi nevne når koden vår skal stoppe eller vente.

Se for eksempel på VBA-koden nedenfor.

Kode:

 Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait ("13:15:00") Range ("A3"). Value = " Til VBA "End Sub 

Husk mens jeg kjører denne koden, er systemtiden min 13:00:00, så snart jeg kjører koden vil den utføre de to første linjene, dvs.

Område ("A1"). Verdi = "Hei" og Område ("A2"). Verdi = "Velkommen"

Men hvis du ser på neste linje, står det Application.Wait (“13:15:00”), så etter at jeg har utført disse linjene, blir makroen stoppet i 15 minutter, dvs. fra 13:00:00 vil den vente til systemet mitt tiden når 13:15:01.

Når systemtiden min når den tiden, vil den utføre de gjenværende kodelinjene.

Område ("A3"). Verdi = "Til VBA"

Dette er imidlertid ikke den beste måten å øve på pausekoden, la oss si at du kjører koden på forskjellige tidspunkter, så må vi bruke NÅ VBA-funksjonen med TIDSVERDI-funksjonen.

Nå- funksjonen returnerer gjeldende dato og tid i henhold til systemet vi jobber med.

TIME-verdi- funksjonen holder tiden fra 00:00:00 til 23:59:29.

Ok, anta at vi må sette koden på pause i 10 minutter når vi kjører koden, så kan vi bruke koden nedenfor.

Kode:

 Sub Pause_Example1 () Range ("A1"). Value = "Hello" Range ("A2"). Value = "Welcome" Application.Wait (Now () + TimeValue ("00:00:10")) Range (" A3 "). Verdi =" Til VBA "End Sub 

Dette ligner på forrige kode, men den eneste forskjellen er at vi har lagt til NÅ & TIDSVERDI-funksjonen.

Når vi kjører denne koden, vil den holde eller stoppe utførelsen i 10 minutter.

Hvordan pause VBA-koden ved hjelp av hvilemetoden?

Søvn er en komplisert funksjon i VBA fordi den ikke er en innebygd funksjon. Siden det ikke er innebygd for å gjøre det tilgjengelig for bruk, må vi legge til koden nedenfor øverst i modulen.

Kode:

# Hvis VBA7 deretter offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems # Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) # End If' For 32 Bit Systems 

Du må bare kopiere koden ovenfor og lime den inn øverst i modulen.

Årsaken til at vi trenger å legge til ovennevnte kode fordi SLEEP er en VBA-funksjon som presenteres i Windows DLL-filer, så vi må erklære nomenklaturen før vi starter underprosedyren.

Ok, la oss se på eksemplet på SLEEP-funksjonen nå.

Kode:

 Sub Pause_Example2 () Dim StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub 

Først har vi deklarert to variabler som streng.

 Dim StartTime As String Dim EndTime As String 

Så har vi tilordnet TIME excel-funksjonen til StartTime-variabelen. TID-funksjonen returnerer gjeldende tid i henhold til systemet.

StartTime = Tid

Så har vi tildelt det samme som skal vises i meldingsboksen.

MsgBox StartTime

Så har jeg brukt SLEEP-funksjon som Sleep (10000).

Her er 10000 millisekunder som tilsvarer 10 sekunder i VBA.

Så til slutt har jeg tilordnet variabelen EndTime den ene TID-funksjonen .

Nå igjen har jeg skrevet en kode for å vise tiden.

EndTime = Tid

Dette vil vise forskjellen mellom starttid og sluttid.

Nå skal jeg utføre koden og se hva starttiden er.

Når jeg utfører koden, er systemtiden min 13:40:48, og nå vil koden min sove i 10 sekunder. På slutten er tiden min som følger.

Så som dette kan vi sette koden på pause fra å utføre den i en bestemt tid.