VBA Ventefunktion - Hvordan bruges Excel VBA Ventemetode?

Indholdsfortegnelse

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 gør 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 fra at blive udført og 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, holder den makrokoden, der skal udføres, til en bestemt tidsramme. Ved hjælp af denne metode skal vi 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 sidste ende, siger det boolsk. Dette betyder, at det returnerer resultatet som boolske værdier, dvs. SAND eller FALSK.

Indtil det angivne tidspunkt ankom, står der FALSE, og det øjeblik, det angivne tidspunkt ankom, returnerer det 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æ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å brug af Excel VBA Ventefunktion

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. Det er farligt at give tid som dette, fordi vi ikke altid arbejder fra kl. 14.30. Det varierer hele tiden.

Lad os sige, når du kører koden. Du vil vente i 2 minutter, hvordan henviser du til dette i 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, returnerer NOW () -funktionen den aktuelle dato og klokkeslæt 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 pause din kode 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 f.eks. Nedenstående data.

For at beregne fortjeneste = (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) Application.Wait (Now () + 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 SOVE VBA 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 millisekunder. Vi kan kun forsinke i hele sekunder.

Interessante artikler...