VBA Ventefunktion | Hvordan bruges Excel VBA Ventemetode?

Excel VBA ventefunktion

VBA Vent er en indbygget funktion, der bruges til at sætte koden på pause fra at blive udført i et bestemt tidsrum, det ligner meget, hvad vi laver i en søvnkommando, og at sætte en kode på pause, vi bruger metoden application.wait.

Nogle af koderne kræver et stykke tid, før de går videre til den næste kodelinje på grund af andre opgaver, der skal udføres. I disse tilfælde er vi nødt til at stoppe koden, der skal udføres, og sætte pause i et stykke tid og derefter fortsætte med udførelsen. Vi kan sætte koden, der skal udføres på pause, på to måder, den første er "Sleep" -metoden og den anden er "Vent" -metoden. I vores tidligere artikel har vi diskuteret "VBA Sleep" -metoden for at sætte VBA-koden på pause.

"Vent", som navnet selv siger, at det vil holde den makrokode, der skal udføres, til en bestemt tidsramme. Ved hjælp af denne metode er vi nødt til at specificere det tidspunkt, hvor vores kode skal pause, vi vil se eksempler næste.

Syntaksen for WAIT-funktionen er som følger.

Vi skal nævne hvor lang tid vores kode skal stoppe. Som du kan se i slutningen, står der boolsk, det betyder, at det returnerer resultatet som boolske værdier, dvs. SAND eller FALSK.

Indtil den angivne tid ankom, står der FALSE, og det øjeblik, den angivne tid ankom, returnerer den SAND.

Dette er i modsætning til SLEEP-funktionen, fordi WAIT er en indbygget funktion, hvor SLEEP er en Windows-funktion. Før vi får adgang til SLEEP-funktionen, skal vi nævne nedenstående kode øverst i modulet. Men VENT kræver ikke dette.

Kode:

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

Eksempler på brug af Excel VBA Ventefunktion

Du kan downloade denne VBA Vent Excel-skabelon her - VBA Vent Excel-skabelon

Eksempel nr. 1

Antag, at du arbejder i et excel midt på dagen kl. 14:30:00, og at du vil have din kode sat på pause, indtil klokken bliver 14:40:00. Du kan bruge nedenstående kode.

Kode:

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

Koden stopper din excel fra at arbejde, indtil tiden når 14:40:00 i dit operativsystem. At give tid som dette er farligt, fordi vi ikke altid arbejder fra kl. 14.30, det varierer hele tiden.

Lad os sige, når du kører den kode, du vil vente i 2 minutter, hvordan henvises det til din kode?

Så vi kan bruge VBA NU-funktionen med TIDVÆRDI-funktionen til at indtaste den angivne tid fra det aktuelle tidspunkt.

Bare for at minde dig om NU () -funktionen returnerer den aktuelle dato og tid i henhold til dit computersystem. TIMEVALUE-funktionen repræsenterer tiden fra 00:00:00 til 23:59:59 dvs. 23:59:59 PM i 24-timers format. Den konverterer strengværdien til en tidsværdi.

For eksempel betyder NU () + TIDSVÆRDI (00:02:30) aktuel tid + 2 min. 30 sek.

Hvis den aktuelle tid er 14:25:30, bliver den 14:28:00.

For at stoppe eller sætte din kode på pause fra at blive udført fra det aktuelle tidspunkt til de næste 10 minutter kan du bruge nedenstående kode.

Kode:

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

Det er vigtigt at bruge en NOW () -funktion til nøjagtig pause, ellers er der chancer for, at din excel-projektmappe er sat på pause indtil midnat. Vi kan dog komme ud af pausemetoden til enhver tid ved at trykke på Esc- tasten eller Break-tasten.

Eksempel 2

Vent i 10 sekunder hver gang loop løber

Ventemetoden bruges godt med sløjfer. Der er situationer, hvor du muligvis skal vente i 10 sekunder, hver gang løkken kører. Se for eksempel nedenstående data.

For at beregne Profit = (Salg - Omkostning) vil du oprette en loop og efter hver loop skal du vente i 10 sekunder for at kontrollere, om resultatet er nøjagtigt eller ej. Nedenstående kode gør det.

Kode:

 Sub Wait_Example3 () Dim k som heltal For k = 2 til 9 celler (k, 4). Værdi = Celler (k, 2) - Celler (k, 3) Applikation. Vent (Nu () + TimeValue ("00:00) : 10 ")) Næste k Afslut sub 

Denne kode beregner fortjeneste kolonne linje for linje. Efter afslutningen af ​​den første linje venter den i 10 sekunder, før den beregner den næste linje.

VBA Sleep vs VBA Vent

VBA SOVEVBA VENT
Det er ikke en VBA indbygget funktion, har brug for en særlig kode for at få adgang til denne funktion.Det er en VBA indbygget funktion, kræver ingen særlig kode for at få adgang til denne funktion.
Søvn kræver millisekunder som tidsramme.Vent kræver en regelmæssig tidsramme.
Vi kan forsinke koden i millisekunderVi kan kun forsinke i hele sekunder.