Funcția de somn VBA

Funcția de repaus în VBA este de fapt o funcție Windows. Este similar cu funcția de așteptare în VBA. Acesta este folosit pentru a încetini sau a face pauză sau putem spune să oprim funcționarea unui anumit cod cu un anumit timp. Funcția de repaus trebuie să fie apelată în VBA în timp ce o declară în cod. Cum facem asta vom învăța în subiectul de astăzi.

Așa cum am explicat mai sus, VBA Sleep este o funcție Windows și este prezentă în baza de date a kernel-ului Windows. Metoda de declarare și apelare a funcției de repaus în VBA este diferită atât pentru sistemele de operare pe 32 biți, cât și pentru sistemele de operare pe 64 biți. Este practic o funcție API de Windows.

Sintaxa pentru a utiliza funcția VBA Sleep este următoarea:

Somn (Timp în secunde Mili)

Deci, dacă trebuie să încetinim sau să oprim codul timp de 1 sec, trebuie să scriem codul astfel:

 Somn 1000 

1000 este de mili secunde care este egal cu 1 secundă și va încetini codul timp de 1 sec. Dacă dorim să încetinim codul timp de 5 secunde, codul va fi:

 Somn 5000 

Declarația pentru funcția de somn este următoarea:

 #Dacă VBA7 Apoi, „Excel 2010 sau mai târziu, Declare publică PtrSafe Sub Sleep Lib" kernel32 "(ByVal Milliseconds As LongPtr) #Else 'Excel 2007 sau anterioare Public Declare Sub Sleep Lib" kernel32 "(ByVal Milliseconds As Long) #End If 
Notă: Înainte de a utiliza funcția de somn, trebuie să avem în vedere un lucru. Trebuie să utilizăm această funcție în module, nu în obiectele Excel. Pentru a utiliza VBA pentru a vă asigura că fila dezvoltatorului este activată din fila fișiere din secțiunea de opțiuni.

Cum să utilizați funcția Excel VBA Sleep?

Vom învăța cum să utilizăm o funcție VBA Sleep cu câteva exemple în excel.

Puteți descărca acest șablon VBA Sleep Excel aici - șablonul VBA Sleep Excel

Funcția de somn VBA - Exemplul # 1

Ceea ce vom face în acest exemplu este că vom afișa un mesaj către utilizator că macro-ul se va opri timp de cinci secunde. Și exact după cinci secunde, vrem să apară un al doilea mesaj care spune că reluarea macro-ului.

Urmați pașii de mai jos pentru a utiliza funcția de repaus în Excel VBA:

Pasul 1: Accesați fila Dezvoltator și faceți clic pe Visual Basic pentru a deschide VB Editor.

Pasul 2: Odată ce editorul VB este deschis, faceți clic pe Insert Tab, apoi faceți clic pe module pentru a insera un nou modul.

Pasul 3: Acum folosiți declarația pentru a utiliza funcția de repaus. Deoarece folosesc sistemul de operare Windows pe 64 de biți, voi folosi declarația de declarație pentru același lucru.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Pasul 4: Acum declarați subfuncția pentru a începe să scrieți codul.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () End Sub 

Pasul 5: Utilizați funcția Mgsbox pentru a afișa mesajul că macrocomanda va fi întreruptă timp de cinci secunde.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro va fi întrerupt pentru cinci secunde" End Sub 

Pasul 6: Folosiți funcția Sleep pentru a întrerupe macro-ul timp de cinci secunde.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro va fi întrerupt pentru cinci secunde" Sleep 5000 End Sub 

Pasul 7: Utilizați acum funcția msgbox pentru a afișa mesajul că macro-ul a fost reluat.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro va fi întrerupt timp de cinci secunde" Sleep 5000 MsgBox "Macro a fost reluată" End Sub 

Pasul 8: Rulați codul de pe butonul de rulare furnizat sau apăsați F5 pentru a vedea rezultatul. Vedem că este afișat primul mesaj.

Pasul 9: Odată ce facem clic pe Ok și așteptăm cinci secunde vom vedea un alt mesaj.

Între ambele mesaje a existat o pauză de cinci secunde.

Funcția de somn VBA - Exemplul # 2

Acum ceea ce vom face într-un alt exemplu este că am patru variabile A, B, C și D. În primul rând, vreau să adaug valoarea lui A și B și să o afișez și după 5 secunde vreau să afișez valoarea de adăugarea de A, B, C și D.

Urmați pașii de mai jos pentru a utiliza funcția de repaus în Excel VBA:

Pasul 1: Accesați fila Dezvoltator și faceți clic pe Visual Basic pentru a deschide VB Editor.

Pasul 2: Odată ce editorul VB este deschis, faceți clic pe Insert Tab, apoi faceți clic pe module pentru a insera un nou modul.

Pasul 3: Acum folosiți declarația pentru a utiliza funcția de repaus. Deoarece folosesc sistemul de operare Windows pe 64 de biți, voi folosi declarația de declarație pentru același lucru.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Pasul 4: Acum declarați subfuncția pentru a începe să scrieți codul.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () End Sub 

Pasul 5: Declarați șase variabile A, B, C, D, X și Y pentru a stoca valori.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Eșantion1 () Dim A, B, C, D, X, Y Ca Sub End End Sub 

Pasul 6: dați valori aleatorii la A, B, C și D.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Ca număr întreg A = 10 B = 15 C = 20 D = 25 End Sub 

Pasul 7: Stocați valoarea A + B în X.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Ca număr întreg A = 10 B = 15 C = 20 D = 25 X = A + B Sub final 

Pasul 8: Afișați valoarea lui X.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Ca număr întreg A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Pasul 9: Utilizați acum funcția de repaus pentru a face o pauză timp de cinci secunde.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Ca număr întreg A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Pasul 10: Acum în variabila Y stocați valoarea X + C + D și afișați-o.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample1 () Dim A, B, C, D, X, Y Ca număr întreg A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y Sub End 

Pasul 11: Rulați codul de mai sus de la butonul de rulare furnizat sau apăsând tasta F5 și vedeți rezultatul. Vedem că primul mesaj este afișat ca.

Pasul 12: Apăsați OK și macro-ul așteaptă cinci secunde și afișează următorul rezultat.

Funcția de somn VBA - Exemplul # 3

În acest exemplu, dorim să redenumim două foi de lucru foaia 1 și foaia 2 ca Anand și respectiv Aran. Dar durata de timp între ambele ar trebui să fie de cinci secunde. Practic, dorim ca macrocomanda să se întrerupă după redenumirea foii 1 și apoi redenumirea foii 2. În prezent, ambele foi sunt denumite astfel:

Urmați pașii de mai jos pentru a utiliza funcția de repaus în Excel VBA:

Pasul 1: Accesați fila Dezvoltator și faceți clic pe Visual Basic pentru a deschide VB Editor.

Pasul 2: Odată ce editorul VB este deschis, faceți clic pe Insert Tab, apoi faceți clic pe module pentru a insera un nou modul.

Pasul 3: Acum folosiți declarația pentru a utiliza funcția de repaus. Deoarece folosesc sistemul de operare Windows pe 64 de biți, voi folosi declarația de declarație pentru același lucru.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Pasul 4: Acum declarați subfuncția pentru a începe să scrieți codul.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () End Sub 

Pasul 5: Activați foaia de lucru 1 și redenumiți-o cu următorul cod:

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Fișele de lucru ("Sheet1"). Activați foile de lucru ("Sheet1"). Name = "Anand" MsgBox "Foaia 1 redenumită" End Sub 

Pasul 6: Acum folosiți funcția de repaus pentru a utiliza întârziere timp de cinci secunde.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Fișele de lucru ("Sheet1"). Activați foile de lucru ("Sheet1"). Name = "Anand" MsgBox "Foaia 1 redenumită" Sleep 5000 End Sub 

Pasul 7: Redenumiți foaia 2 cu următorul cod.

Cod:

 Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Fișele de lucru ("Sheet1"). Activați foile de lucru ("Sheet1"). Name = "Anand" MsgBox "Foaia 1 redenumită" Sleep 5000 Worksheets (" Sheet2 "). Activați foile de lucru (" Sheet2 "). Name =" Aran "MsgBox" Foaia 2 redenumită "End Sub 

Pasul 8: Acum rulați codul și vedem că este afișat primul mesaj.

De asemenea, putem verifica dacă foaia 1 este redenumită.

Pasul 9: Apăsați ok și așteptați cinci secunde pentru ca următorul nume și următorul mesaj să fie redenumit.

A doua foaie este redenumită și ea.

Lucruri de amintit

  • VBA Sleep este o funcție de fereastră, astfel încât pentru a utiliza trebuie să folosim declarații de declarație.
  • Există diferite declarații de declarație pentru diferite tipuri de sisteme de operare.
  • Pur și simplu folosind VBA Sleep îngheață macrocomanda pentru durata prevăzută.
  • Parametrul timp dat funcției de somn VBA este în milisecunde.

Articole recomandate

Acesta este un ghid pentru funcția de somn VBA. Aici vom discuta despre cum să folosiți funcția Excel VBA Sleep împreună cu exemple practice și șablon excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Funcția VBA VLOOKUP
  2. Funcția DCOUNT în Excel
  3. Copiere VBA Copiere
  4. Funcție COMBIN în Excel

Categorie: