VBA Väntefunktion - Hur använder jag Excel VBA Wait Method?

Innehållsförteckning

Excel VBA Wait-funktion

VBA Wait är en inbyggd funktion som används för att pausa koden från att köras under en viss tid, det liknar mycket vad vi gör i ett sovkommando och för att pausa en kod som vi använder application.wait-metoden.

Vissa av koderna kräver någon gång innan du går vidare till nästa kodrad på grund av att andra uppgifter ska slutföras. I dessa fall måste vi stoppa att koden körs och pausa under en tid och sedan fortsätta med körningen. Vi kan pausa koden som ska köras på två sätt, den första är "Sleep" -metoden och den andra är "Wait" -metoden. I vår tidigare artikel har vi diskuterat "VBA Sleep" -metoden för att pausa VBA-koden.

"Vänta", som namnet själv säger, kommer det att hålla makrokoden som ska köras till en viss tidsram. Med den här metoden måste vi ange tiden vår kod ska pausa. Vi kommer att se exempel härnäst.

Syntaxen för WAIT-funktionen är som följer.

Vi måste nämna hur lång tid vår kod ska pausa. Som du kan se till slut säger det booleskt. Detta betyder att det returnerar resultatet som booleska värden, dvs. SANT eller FALSKT.

Till dess att den angivna tiden anlände står det FALSE och det ögonblick som den angivna tiden anlände returnerar den SANT.

Detta skiljer sig från SLEEP-funktionen eftersom WAIT är en inbyggd funktion där SLEEP är en Windows-funktion. Innan vi går in i SLEEP-funktionen måste vi nämna koden nedan längst upp i modulen. Men WAIT kräver inte detta.

Koda:

# Om VBA7 sedan offentligt förklara 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

Exempel på hur du använder Excel VBA Wait-funktion

Exempel 1

Antag att du arbetar i ett excel mitt på dagen klockan 14.30 och vill att din kod ska pausas tills klockan blir 14:40:00. Du kan använda koden nedan.

Koda:

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

Koden kommer att stoppa din excel från att fungera tills tiden når 14:40:00 i ditt operativsystem. Att ge tid som detta är farligt eftersom vi inte alltid arbetar från kl. 14.30. Det fortsätter att variera hela tiden.

Låt oss säga när du kör koden. Du vill vänta i två minuter, hur hänvisar du till detta i din kod?

Så vi kan använda VBA NOW-funktionen med TIME VALUE-funktionen för att ange den angivna tiden från den aktuella tiden.

Bara för att påminna dig, funktionen NOW () returnerar det aktuella datumet och tiden enligt ditt datorsystem. TIMEVALUE-funktionen representerar tiden från 00:00:00 till 23:59:59 dvs 23:59:59 i 24-timmarsformat. Det konverterar strängvärdet till ett tidsvärde.

Till exempel betyder NU () + TIDSVÄRDE (00:02:30) aktuell tid + 2 min 30 sek.

Om den aktuella tiden är 14:25:30 blir den 14:28:00.

För att stoppa eller pausa din kod från att köras från aktuell tid till nästa tio minuter kan du använda koden nedan.

Koda:

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

Det är viktigt att använda en NOW () -funktion för exakt paus. Annars finns det chanser att din Excel-arbetsbok har pausats fram till midnatt. Vi kan dock komma ut ur pausmetoden när som helst genom att trycka på Esc- tangenten eller Break-knappen.

Exempel 2

Vänta i 10 sekunder varje gång Loop Runs

Väntemetoden används väl med öglor. Det finns situationer där du kan behöva vänta i 10 sekunder varje gång loop går. Titta till exempel på nedanstående data.

För att beräkna vinst = (försäljning - kostnad) vill du skapa en slinga och efter varje slinga vill du vänta i 10 sekunder för att kontrollera om resultatet är korrekt eller inte. Koden nedan gör det.

Koda:

Sub Wait_Example3 () Dim k As Integer For k = 2 To 9 Cells (k, 4) .Value = Cells (k, 2) - Cells (k, 3) Application.Wait (Now () + TimeValue ("00:00) : 10 ")) Nästa k Avsluta sub

Denna kod beräknar vinstkolumnen rad för rad. Efter avslutad första rad väntar den i 10 sekunder innan den räknar ut nästa rad.

VBA Sleep vs. VBA Wait

VBA SLEEP VBA VÄNTA
Det är inte en VBA-inbyggd funktion, behöver en speciell kod för att komma åt den här funktionen. Det är en VBA-inbyggd funktion, kräver ingen speciell kod för att komma åt den här funktionen.
Sömn kräver millisekunder som tidsram. Vänta kräver en regelbunden tidsram.
Vi kan fördröja koden i millisekunder. Vi kan bara fördröja hela sekunder.

Intressanta artiklar...