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-skabelonVBA 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 -
- VBA VLOOKUP-funktion
- DCOUNT-funktion i Excel
- VBA Copy Paste
- COMBIN-funktion i Excel