VBA-sömnfunktion

Sovfunktion i VBA är faktiskt en Windows-funktion. Det liknar väntfunktionen i VBA. Det används för att bromsa ner eller pausa, eller vi kan säga stoppa körningen av en specifik kod vid en viss tid. Sovfunktion måste anropas i VBA medan de anges i koden. Hur vi gör det är att vi kommer att lära oss i dagens ämne.

Som förklarats ovan är VBA Sleep en Windows-funktion och den finns i Windows-kärndatabasen. Metoden för att deklarera och ringa sömnfunktion i VBA är olika för både 32-bitars operativsystem och 64-bitars operativsystem. Det är i princip en Windows API-funktion.

Syntaxen för att använda VBA Sleep-funktion är enligt följande:

Sleep (Time in Mili Seconds)

Så om vi behöver bromsa eller stänga koden under 1 sekund måste vi skriva koden som:

 Sov 1000 

1000 är milisekunden som motsvarar 1 sekund och det kommer att bromsa koden under 1 sek. Om vi ​​vill bromsa koden i 5 sekunder kommer koden att vara:

 Sov 5000 

Deklarationen för sömnfunktionen är som följer:

 #Om VBA7 Då 'Excel 2010 eller senare offentliggör PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 eller tidigare Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End 
Obs! Innan du använder sömnfunktionen är det en sak som vi måste tänka på. Vi måste använda den här funktionen i moduler, inte i excel-objekten. För att använda VBA för att säkerställa att utvecklarens flik är på från filfliken i avsnittet med alternativ.

Hur använder jag Excel VBA Sleep-funktion?

Vi kommer att lära dig att använda en VBA Sleep-funktion med några exempel i Excel.

Du kan ladda ner denna VBA Sleep Excel-mall här - VBA Sleep Excel Mall

VBA Sleep-funktion - exempel # 1

Vad vi ska göra i det här exemplet är att vi dyker upp ett meddelande till användaren om att makro stannar i fem sekunder. Och exakt efter fem sekunder vill vi att ett andra meddelande dyker upp som säger att makro återupptas.

Följ stegen nedan för att använda sömnfunktion i Excel VBA:

Steg 1: Gå till fliken Utvecklare och klicka på Visual Basic för att öppna VB Editor.

Steg 2: När VB Editor är öppen klickar du på Infoga fliken och klickar sedan på moduler för att infoga en ny modul.

Steg 3: Använd nu deklarationen för att använda sömnfunktionen. Eftersom jag använder Windows 64-bitars operativsystem kommer jag att använda deklarationen för samma sak.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Steg 4: Förklara nu subfunktionen för att börja skriva koden.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Steg 5: Använd Mgsbox-funktionen för att visa meddelandet om att makro kommer att pausas i fem sekunder.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro kommer att pausas i fem sekunder" End Sub 

Steg 6: Använd Sleep-funktionen för att pausa makroen i fem sekunder.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro kommer att pausas i fem sekunder" Sleep 5000 End Sub 

Steg 7: Använd nu funktionen msgbox för att visa meddelandet om att makro har återupptagits.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro kommer att pausas i fem sekunder" Sleep 5000 MsgBox "Makro har återupptagits" End Sub 

Steg 8: Kör koden från den medföljande körknappen eller tryck på F5 för att se resultatet. Vi ser att det första meddelandet visas.

Steg 9: När vi klickar på Ok och väntar i fem sekunder ser vi ett annat meddelande.

Det var en paus i fem sekunder mellan båda meddelandena.

VBA-sömnfunktion - exempel # 2

Vad vi nu ska göra i ett annat exempel är att jag har fyra variabler A, B, C och D. Först vill jag lägga till värdet på A och B och visa det och efter 5 sekunder vill jag visa värdet på tillsatsen av A, B, C och D.

Följ stegen nedan för att använda sömnfunktion i Excel VBA:

Steg 1: Gå till fliken Utvecklare och klicka på Visual Basic för att öppna VB Editor.

Steg 2: När VB Editor är öppen klickar du på Infoga fliken och klickar sedan på moduler för att infoga en ny modul.

Steg 3: Använd nu deklarationen för att använda sömnfunktionen. Eftersom jag använder Windows 64-bitars operativsystem kommer jag att använda deklarationen för samma sak.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Steg 4: Förklara nu subfunktionen för att börja skriva koden.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Steg 5: Förklara sex variabler A, B, C, D, X och Y för att lagra värden.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Underprov1 () Dim A, B, C, D, X, Y Som heltal End Sub 

Steg 6: Ge slumpmässiga värden till A, B, C och D.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Underprov1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 End Sub 

Steg 7: Lagra värdet på A + B i X.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Underprov1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 X = A + B Avsluta under 

Steg 8: Visa värdet på X.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Underprov1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Steg 9: Använd nu sömnfunktionen för att ha en paus i fem sekunder.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Underprov1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Steg 10: Spara nu värdet på X + C + D i variabel Y och visa det.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Underprov1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Steg 11: Kör ovanstående kod från den medföljande körknappen eller genom att trycka på F5-tangenten och se resultatet. Vi ser att det första meddelandet visas som.

Steg 12: Tryck på OK och makroen väntar i fem sekunder och visar nästa resultat.

VBA Sleep-funktion - exempel # 3

I det här exemplet vill vi byta namn på två kalkylblad 1 och ark 2 som Anand respektive Aran. Men tiden mellan båda borde vara fem sekunder. I grund och botten vill vi att makroen ska pausa efter att ha bytt namn på ark 1 och sedan bytt namn på ark 2. För närvarande namnges båda arken enligt följande:

Följ stegen nedan för att använda sömnfunktion i Excel VBA:

Steg 1: Gå till fliken Utvecklare och klicka på Visual Basic för att öppna VB Editor.

Steg 2: När VB Editor är öppen klickar du på Infoga fliken och klickar sedan på moduler för att infoga en ny modul.

Steg 3: Använd nu deklarationen för att använda sömnfunktionen. Eftersom jag använder Windows 64-bitars operativsystem kommer jag att använda deklarationen för samma sak.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Steg 4: Förklara nu subfunktionen för att börja skriva koden.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Steg 5: Aktivera kalkylblad 1 och byt namn på det med följande kod:

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Aktivera Worksheets ("Sheet1"). Namn = "Anand" MsgBox "Sheet 1 omdöpt till" End Sub 

Steg 6: Använd nu sömnfunktionen för att använda fördröjning i fem sekunder.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Aktivera Worksheets ("Sheet1"). Namn = "Anand" MsgBox "Sheet 1 omdöpt till" Sleep 5000 End Sub 

Steg 7: Byt namn på arket 2 med följande kod.

Koda:

 Offentligt förklara PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Aktivera Worksheets ("Sheet1"). Namn = "Anand" MsgBox "Sheet 1 omdöpt till" Sleep 5000 Worksheets (" Sheet2 "). Aktivera arbetsblad (" Sheet2 "). Name =" Aran "MsgBox" Sheet 2 omdöpt till "End Sub 

Steg 8: Kör nu koden så ser vi att det första meddelandet visas.

Vi kan också kontrollera att ark 1 byts namn.

Steg 9: Tryck på ok och vänta i fem sekunder tills nästa meddelande och andra ark byts namn.

Det andra arket byts också namn.

Saker att komma ihåg

  • VBA Sleep är en fönsterfunktion så för att vi måste använda deklarationer.
  • Det finns olika uttalanden för olika typer av operativsystem.
  • Bara att använda VBA Sleep fryser makroen under den angivna tidsperioden.
  • Tidsparametern som ges till VBA-sömnfunktionen är i millisekunder.

Rekommenderade artiklar

Detta är en guide till VBA-sömnfunktion. Här diskuterar vi hur du använder Excel VBA Sleep Funktion tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA VLOOKUP-funktion
  2. DCOUNT-funktion i Excel
  3. VBA Copy Paste
  4. COMBIN-funktion i Excel

Kategori: