VBA Sleep-funktion

Dvalefunktion i VBA er faktisk en windows-funktion. Det svarer til Vent-funktion i VBA. Det bruges til at bremse eller pause, eller vi kan sige at standse kørslen af ​​en bestemt kode inden for et bestemt tidspunkt. Dvale-funktion skal kaldes i VBA, mens den angives i koden. Hvordan vi gør det, lærer vi i dagens emne.

Som forklaret ovenfor er VBA Sleep en windows-funktion, og den er til stede i kernedatabasen over windows. Metoden til at deklarere og kalde søvnfunktion i VBA er forskellig for både 32 bit operativsystemer og 64 bit operativsystemer. Det er dybest set en Windows API-funktion.

Syntaks til brug af VBA Sleep-funktion er som følger:

Sleep (tid i mili sekunder)

Så hvis vi er nødt til at bremse eller stoppe koden i 1 sekund, er vi nødt til at skrive koden som:

 Sov 1000 

1000 er de mili sekunder, der svarer til 1 sekund, og det vil bremse koden i 1 sek. Hvis vi vil nedsætte koden i 5 sekunder, vil koden være:

 Sov 5000 

Erklæringen for søvnfunktion er som følger:

 #Hvis VBA7 Derefter erklærer Excel 2010 eller nyere offentligt PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else 'Excel 2007 eller nyere erklærer Public Sub Sleep Lib "kernel32" (ByVal Milliseconds Like Long) # 
Bemærk: Før vi bruger søvnfunktion er der en ting, vi skal huske på. Vi er nødt til at bruge denne funktion i moduler, ikke i excel-objekter. Sådan bruges VBA til at sikre, at udviklerens fane er tændt fra fanebladet med filer i afsnittet med indstillinger.

Sådan bruges Excel VBA Sleep-funktion?

Vi lærer, hvordan man bruger en VBA Sleep-funktion med få eksempler i Excel.

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

VBA Sleep-funktion - eksempel # 1

Hvad vi skal gøre i dette eksempel er, at vi får en besked til brugeren om, at makroen stopper i fem sekunder. Og nøjagtigt efter fem sekunder ønsker vi, at der vises en anden meddelelse, der siger, at makroen genoptages.

Følg nedenstående trin for at bruge søvnfunktion i Excel VBA:

Trin 1: Gå til fanen Udvikler, og klik på Visual Basic for at åbne VB Editor.

Trin 2: Når VB Editor er åben, skal du klikke på Indsæt fane og derefter klikke på moduler for at indsætte et nyt modul.

Trin 3: Brug nu erklæringen til at bruge sleep-funktionen. Da jeg bruger Windows 64-bit operativsystem, bruger jeg erklæringserklæringen til det samme.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Trin 4: Erklær nu subfunktionen for at begynde at skrive koden.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Trin 5: Brug Mgsbox-funktionen til at få vist meddelelsen om, at makroen skal stoppes i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro vil blive sat på pause i fem sekunder" End Sub 

Trin 6: Brug Sleep-funktion til at sætte makroen på pause i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro vil blive sat på pause i fem sekunder" Sleep 5000 End Sub 

Trin 7: Brug nu msgbox-funktionen til at vise meddelelsen om, at makroen er genoptaget.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Som LongPtr) Sub Sample () MsgBox "MAcro vil blive sat på pause i fem sekunder" Sleep 5000 MsgBox "Makro er genoptaget" End Sub 

Trin 8: Kør koden fra den medfølgende køreknap, eller tryk på F5 for at se resultatet. Vi ser, at den første meddelelse vises.

Trin 9: Når vi først klikker på Ok og venter i fem sekunder, ser vi en anden meddelelse.

Der var en pause i fem sekunder mellem begge meddelelser.

VBA Sleep-funktion - eksempel # 2

Hvad vi nu skal gøre i et andet eksempel er, at jeg har fire variabler A, B, C og D. Først vil jeg tilføje værdien af ​​A og B og vise den, og efter 5 sekunder vil jeg vise værdien af tilføjelsen af ​​A, B, C og D.

Følg nedenstående trin for at bruge søvnfunktion i Excel VBA:

Trin 1: Gå til fanen Udvikler, og klik på Visual Basic for at åbne VB Editor.

Trin 2: Når VB Editor er åben, skal du klikke på Indsæt fane og derefter klikke på moduler for at indsætte et nyt modul.

Trin 3: Brug nu erklæringen til at bruge sleep-funktionen. Da jeg bruger Windows 64-bit operativsystem, bruger jeg erklæringserklæringen til det samme.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Trin 4: Erklær nu subfunktionen for at begynde at skrive koden.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Trin 5: Angiv seks variabler A, B, C, D, X og Y for at gemme værdier.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Som LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Som heltal End Sub 

Trin 6: Giv tilfældige værdier til A, B, C og D.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 End Sub 

Trin 7: Gem værdien af ​​A + B i X.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 X = A + B Afslut under 

Trin 8: Vis værdien af ​​X.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Som heltal A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Trin 9: Brug nu sleep-funktionen til at have en pause i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () 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 

Trin 10: Gem nu værdien på X + C + D i variabel Y og vis den.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () 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 

Trin 11: Kør ovenstående kode fra den medfølgende køreknap eller ved at trykke på F5-tasten og se resultatet. Vi ser, at den første meddelelse vises som.

Trin 12: Tryk på OK, og makroen venter i fem sekunder og viser det næste resultat.

VBA Sleep-funktion - eksempel # 3

I dette eksempel ønsker vi at omdøbe to regnearkark 1 og ark 2 som henholdsvis Anand og Aran. Men tidsvarigheden mellem begge skal være fem sekunder. Grundlæggende ønsker vi, at makroen skal pause efter omdøbning af ark 1 og derefter omdøbe ark 2. I øjeblikket benævnes begge ark som følger:

Følg nedenstående trin for at bruge søvnfunktion i Excel VBA:

Trin 1: Gå til fanen Udvikler, og klik på Visual Basic for at åbne VB Editor.

Trin 2: Når VB Editor er åben, skal du klikke på Indsæt fane og derefter klikke på moduler for at indsætte et nyt modul.

Trin 3: Brug nu erklæringen til at bruge sleep-funktionen. Da jeg bruger Windows 64-bit operativsystem, bruger jeg erklæringserklæringen til det samme.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Trin 4: Erklær nu subfunktionen for at begynde at skrive koden.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Trin 5: Aktivér regneark 1, og omdøb det med følgende kode:

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Arbejdsark ("Sheet1"). Aktivér Worksheets ("Sheet1"). Navn = "Anand" MsgBox "Sheet 1 omdøbt" End Sub 

Trin 6: Brug nu sleep-funktion til at bruge forsinkelse i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Som LongPtr) Sub Sample2 () Arbejdsark ("Sheet1"). Aktivér Worksheets ("Sheet1"). Navn = "Anand" MsgBox "Sheet 1 omdøbt" Sleep 5000 End Sub 

Trin 7: Omdøb nu arket 2 med følgende kode.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Som LongPtr) Sub Sample2 () Arbejdsark ("Sheet1"). Aktivér worksheets ("Sheet1"). Navn = "Anand" MsgBox "Sheet 1 omdøbt til" Sleep 5000 Worksheets (" Ark2 "). Aktivér regneark (" Ark2 "). Navn =" Aran "MsgBox" Ark 2 omdøbt til "End Sub 

Trin 8: Kør nu koden, og vi ser, at den første meddelelse vises.

Vi kan også kontrollere, at ark 1 omdøbes.

Trin 9: Tryk på ok, og vent i fem sekunder på, at den næste meddelelse og det andet ark omdøbes.

Det andet ark omdøbes også.

Ting at huske

  • VBA Sleep er en vinduesfunktion, så for at bruge den er vi nødt til at bruge erklæringer.
  • Der er forskellige erklæringer for forskellige typer operativsystemer.
  • Brug af VBA Sleep fryser makroen i den angivne tidsvarighed.
  • Den tidsparameter, der gives til VBA-søvnfunktion, er i millisekunder.

Anbefalede artikler

Dette er en guide til VBA-søvnfunktion. Her diskuterer vi, hvordan du bruger Excel VBA Sleep-funktion sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

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

Kategori: