VBA Ventefunksjon | Hvordan bruker jeg Excel VBA Wait Method?

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å det vi gjør i en søvnkommando, og å sette en kode på pause som 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 koden som skal kjøres, og ta en pause, og deretter fortsette med kjøringen. 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 selve navnet sier det vil holde makrokoden som skal utføres til en spesifisert tidsramme. Ved å bruke denne metoden må vi spesifisere tidspunktet koden vår skal stoppe, vi vil se eksempler neste.

Syntaksen til WAIT-funksjonen er som følger.

Vi må nevne hvor lang tid koden vår skal stoppe. Som du ser på slutten står det boolsk, dette betyr at den returnerer resultatet som boolske verdier, dvs. SANN eller FALSK.

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

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ære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems 

Eksempler på bruk av Excel VBA Ventefunksjon

Du kan laste ned denne VBA Vent Excel-malen her - VBA Vent Excel-mal

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 at når du kjører koden du vil vente i 2 minutter, hvordan kan du henvise dette til 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 om NOW () -funksjonen returnerer 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 den nåværende tiden er 14:25:30, blir den 14:28:00.

For å stoppe eller stoppe koden din 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 loop går. Se for eksempel på dataene nedenfor.

For å beregne Profit = (Salg - Kostnad) vil du lage en loop og etter hver loop vil du vente i 10 sekunder for å sjekke om resultatet er nøyaktig 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 SOVEVBA VENT
Det er ikke en innebygd VBA-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 millisekunderVi kan bare forsinke hele sekunder.