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-malenHvis 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.