VBA sovefunksjon

Sovefunksjon i VBA er faktisk en windows-funksjon. Det ligner på vent-funksjonen i VBA. Den brukes til å bremse eller sette på pause, eller vi kan si stoppe kjøringen av en spesifikk kode innen en viss tid. Søvnfunksjon må kalles i VBA mens du erklærer den i koden. Hvordan vi gjør det, vil vi lære i dagens tema.

Som forklart ovenfor er VBA Sleep en windows-funksjon, og den er til stede i kjernedatabasen over windows. Metoden for å deklarere og ringe søvnfunksjon i VBA er forskjellig for både 32-biters operativsystemer og 64-biters operativsystemer. Det er i utgangspunktet en Windows API-funksjon.

Syntaksen for å bruke VBA Sleep-funksjon er som følger:

Sleep (Time in Mili Seconds)

Så hvis vi trenger å bremse eller stanse koden i 1 sek, må vi skrive koden som:

 Sov 1000 

1000 er mili-sekundene som tilsvarer 1 sekund, og det vil bremse koden i 1 sek. Hvis vi vil redusere koden i 5 sekunder, vil koden være:

 Sov 5000 

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

 #Hvis VBA7 Så erklærer Excel 2010 eller nyere PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else 'Excel 2007 eller tidligere offentlig erklærer Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End If 
Merk: Før du bruker søvnfunksjon er det en ting vi må huske på. Vi må bruke denne funksjonen i moduler, ikke i objektene til Excel. Slik bruker du VBA for å sikre at utvikler-fanen er slått på fra fil-fanen i opsjonsdelen.

Hvordan bruker jeg Excel VBA sovefunksjon?

Vi vil lære hvordan du bruker en VBA Sleep-funksjon med få eksempler i Excel.

Du kan laste ned denne VBA Sleep Excel-malen her - VBA Sleep Excel Template

VBA Sleep-funksjon - eksempel # 1

Det vi skal gjøre i dette eksemplet er at vi vil komme frem en melding til brukeren om at makroen vil stoppe i fem sekunder. Og nøyaktig etter fem sekunder ønsker vi at det kommer en ny melding som sier at makroen gjenopptas.

Følg trinnene nedenfor for å bruke søvnfunksjon i Excel VBA:

Trinn 1: Gå til kategorien Utvikler og klikk på Visual Basic for å åpne VB Editor.

Trinn 2: Når VB Editor er åpen, klikker du på Sett inn fane og klikker deretter på moduler for å sette inn en ny modul.

Trinn 3: Nå bruker erklæringen for å bruke søvnfunksjonen. Da jeg bruker Windows 64-bit operativsystem, vil jeg bruke erklæringen for det samme.

Kode:

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

Trinn 4: Nå erklærer underfunksjonen å begynne å skrive koden.

Kode:

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

Trinn 5: Bruk Mgsbox-funksjonen for å vise meldingen om at makroen kommer til å bli satt på pause i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro kommer til å bli satt på pause i fem sekunder" End Sub 

Trinn 6: Bruk Sleep-funksjon for å ta makroen midlertidig i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro kommer til å bli satt på pause i fem sekunder" Sleep 5000 End Sub 

Trinn 7: Bruk nå msgbox-funksjonen for å vise meldingen om at makroen er gjenopptatt.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro kommer til å bli satt på pause i fem sekunder" Sleep 5000 MsgBox "Makro har blitt gjenopptatt" End Sub 

Trinn 8: Kjør koden fra den medfølgende løpsknappen eller trykk F5 for å se resultatet. Vi ser at den første meldingen vises.

Trinn 9: Når vi klikker på Ok og venter i fem sekunder, ser vi en annen melding.

Det var en pause i fem sekunder mellom begge meldingene.

VBA Sleep-funksjon - eksempel # 2

Nå, hva vi skal gjøre i et annet eksempel, er at jeg har fire variabler A, B, C og D. Først vil jeg legge til verdien til A og B og vise den, og etter 5 sekunder vil jeg vise verdien til tilsetningen av A, B, C og D.

Følg trinnene nedenfor for å bruke søvnfunksjon i Excel VBA:

Trinn 1: Gå til kategorien Utvikler og klikk på Visual Basic for å åpne VB Editor.

Trinn 2: Når VB Editor er åpen, klikker du på Sett inn fane og klikker deretter på moduler for å sette inn en ny modul.

Trinn 3: Nå bruker erklæringen for å bruke søvnfunksjonen. Da jeg bruker Windows 64-bit operativsystem, vil jeg bruke erklæringen for det samme.

Kode:

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

Trinn 4: Nå erklærer underfunksjonen å begynne å skrive koden.

Kode:

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

Trinn 5: Angi seks variabler A, B, C, D, X og Y for å lagre verdier.

Kode:

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

Trinn 6: Gi tilfeldige verdier 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 Heltall A = 10 B = 15 C = 20 D = 25 End Sub 

Trinn 7: Lagre verdien til 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 heltall A = 10 B = 15 C = 20 D = 25 X = A + B Slutt sub 

Trinn 8: Vis verdien av X.

Kode:

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

Trinn 9: Bruk søvnfunksjonen til å ha 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 heltall A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Trinn 10: Lagre verdien i 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 heltall A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Trinn 11: Kjør koden ovenfor fra løpeknappen som følger med, eller ved å trykke på F5-tasten og se resultatet. Vi ser den første meldingen vises som.

Trinn 12: Trykk OK og makroen venter i fem sekunder og viser neste resultat.

VBA Sleep-funksjon - eksempel # 3

I dette eksemplet ønsker vi å gi nytt navn til to regnearkark 1 og ark 2 som henholdsvis Anand og Aran. Men tidsvarigheten mellom begge skal være fem sekunder. I utgangspunktet ønsker vi at makroen skal gå til pause etter at du har gitt nytt navn til ark 1 og deretter gitt nytt navn til ark 2. For øyeblikket heter begge arkene som følger:

Følg trinnene nedenfor for å bruke søvnfunksjon i Excel VBA:

Trinn 1: Gå til kategorien Utvikler og klikk på Visual Basic for å åpne VB Editor.

Trinn 2: Når VB Editor er åpen, klikker du på Sett inn fane og klikker deretter på moduler for å sette inn en ny modul.

Trinn 3: Nå bruker erklæringen for å bruke søvnfunksjonen. Da jeg bruker Windows 64-bit operativsystem, vil jeg bruke erklæringen for det samme.

Kode:

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

Trinn 4: Nå erklærer underfunksjonen å begynne å skrive koden.

Kode:

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

Trinn 5: Aktiver arbeidsark 1 og gi det nytt navn med følgende kode:

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Aktiver Worksheets ("Sheet1"). Navn = "Anand" MsgBox "Sheet 1 omdøpt til" End Sub 

Trinn 6: Bruk nå søvnfunksjon for å bruke forsinkelse i fem sekunder.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Aktiver Worksheets ("Sheet1"). Navn = "Anand" MsgBox "Sheet 1 omdøpt til" Sleep 5000 End Sub 

Trinn 7: Gi nytt navn til arket 2 med følgende kode.

Kode:

 Offentlig erklære PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Worksheets ("Sheet1"). Aktiver Worksheets ("Sheet1"). Navn = "Anand" MsgBox "Sheet 1 omdøpt til" Sleep 5000 Worksheets (" Sheet2 "). Aktiver arbeidsark (" Sheet2 "). Navn =" Aran "MsgBox" Sheet 2 omdøpt til "End Sub 

Trinn 8: Kjør nå koden, og vi ser at den første meldingen vises.

Vi kan også sjekke at ark 1 får nytt navn.

Trinn 9: Trykk på ok og vent i fem sekunder til neste melding og andre ark blir gitt nytt navn.

Det andre arket får også nytt navn.

Ting å huske

  • VBA Sleep er en vindusfunksjon, så vi må bruke erklæringserklæringer for å kunne bruke den.
  • Det er forskjellige erklæringer for forskjellige typer operativsystemer.
  • Bare bruk VBA Sleep fryser makroen for den angitte tidsvarigheten.
  • Tidsparameteren gitt til VBA-søvnfunksjon er i millisekunder.

Anbefalte artikler

Dette er en guide til VBA søvnfunksjon. Her diskuterer vi hvordan du bruker Excel VBA Sleep Function sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. VBA VLOOKUP-funksjon
  2. DCOUNT-funksjon i Excel
  3. VBA Copy Paste
  4. KOMBIN Funksjon i Excel

Kategori: