VBA Ventefunksjon - Hvordan bruker jeg Excel VBA Wait Method?

Innholdsfortegnelse

Excel VBA ventefunksjon

VBA Wait er en innebygd funksjon som brukes til å sette koden på pause fra å kjøres i en spesifisert tid, den ligner veldig på hva vi gjør i en søvnkommando, og å sette en kode på pause vi bruker application.wait-metoden.

Noen av kodene krever en gang før du går videre til neste kodelinje på grunn av at andre oppgaver skal fullføres. I disse tilfellene må vi stoppe at koden blir utført, og ta en pause i litt tid, og deretter fortsette med utførelsen. Vi kan sette koden som skal utføres på pause, på to måter, den første er "Sleep" -metoden, og den andre er "Wait" -metoden. I vår tidligere artikkel har vi diskutert "VBA Sleep" -metoden for å sette VBA-koden på pause.

"Vent", som navnet sier, vil det holde makrokoden som skal utføres til en spesifisert tidsramme. Ved hjelp av denne metoden må vi spesifisere tidspunktet koden vår skal stoppe. Vi får se eksempler neste.

Syntaksen til WAIT-funksjonen er som følger.

Vi må nevne hvor lang tid koden vår skal stoppe. Som du til slutt kan se, står det boolsk. Dette betyr at det returnerer resultatet som boolske verdier, dvs. SANT eller FALSE.

Inntil den angitte tiden ankom, står det FALSE, og øyeblikket den angitte tiden ankom, returnerer den SANT.

Dette er i motsetning til SLEEP-funksjonen fordi WAIT er en innebygd funksjon der SLEEP er en Windows-funksjon. Før vi får tilgang til SLEEP-funksjonen, må vi nevne koden nedenfor øverst på modulen. Men WAIT krever ikke dette.

Kode:

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

Eksempler på bruk av Excel VBA Ventefunksjon

Eksempel 1

Anta at du jobber i et excel midt på dagen klokka 14:30:00, og at du vil at koden din skal bli satt på pause til klokka blir 14:40:00. Du kan bruke koden nedenfor.

Kode:

Sub Wait_Example1 () Application.Wait "14:40:00" End Sub

Koden vil forhindre at excel fungerer fra klokka 14:40:00 i operativsystemet ditt. Å gi tid som dette er farlig fordi vi ikke alltid jobber fra kl. 14.30. Det varierer hele tiden.

La oss si når du kjører koden. Du vil vente i 2 minutter, hvordan refererer du til dette i koden din?

Så vi kan bruke VBA NOW-funksjonen med TIME VALUE-funksjonen til å angi den angitte tiden fra gjeldende tid.

Bare for å minne deg på, returnerer NOW () -funksjonen gjeldende dato og klokkeslett i henhold til datasystemet ditt. TIMEVALUE-funksjonen representerer tiden fra 00:00:00 til 23:59:59 dvs. 23:59:59 PM i 24-timers format. Den konverterer strengverdien til en tidsverdi.

For eksempel betyr NÅ () + TIDSVERDI (00:02:30) Gjeldende tid + 2 min 30 sek.

Hvis nåværende tid er 14:25:30, blir den 14:28:00.

For å stoppe eller stoppe koden fra å bli kjørt fra nåværende tid til de neste 10 minuttene, kan du bruke koden nedenfor.

Kode:

Sub Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub

Det er viktig å bruke en NOW () -funksjon for nøyaktig pause. Ellers er det sjanser for at Excel-arbeidsboken din er satt på pause til midnatt. Vi kan imidlertid komme ut av pausemetoden når som helst ved å trykke på Esc- tasten eller Break-tasten.

Eksempel 2

Vent i 10 sekunder hver gang loop løper

Ventemetoden brukes godt med løkker. Det er situasjoner der du kanskje trenger å vente i 10 sekunder hver gang sløyfen går. Se for eksempel på dataene nedenfor.

For å beregne Profit = (Salg - Kostnad), vil du opprette en loop, og etter hver loop vil du vente i 10 sekunder for å sjekke om resultatet er korrekt eller ikke. Koden nedenfor vil gjøre det.

Kode:

Sub Wait_Example3 () Dim k As Integer For k = 2 Til 9 celler (k, 4) .Value = Cells (k, 2) - Cells (k, 3) Application.Wait (Now () + TimeValue ("00:00) : 10 ")) Neste k End Sub

Denne koden vil beregne fortjenestekolonnen linje for linje. Etter at første linje er fullført, vil den vente i 10 sekunder før den beregner neste linje.

VBA Sleep vs. VBA Vent

VBA SOVE VBA VENT
Det er ikke en VBA innebygd funksjon, trenger en spesiell kode for å få tilgang til denne funksjonen. Det er en VBA innebygd funksjon, krever ingen spesiell kode for å få tilgang til denne funksjonen.
Søvn krever millisekunder som tidsramme. Vent krever en vanlig tidsramme.
Vi kan utsette koden i millisekunder. Vi kan bare forsinke hele sekunder.

Interessante artikler...