Întrerupeți executarea codului VBA
Pauză VBA este folosit pentru a întrerupe codul de la executarea acestuia pentru o anumită perioadă de timp și pentru a întrerupe un cod în VBA folosim metoda application.wait.
Când construim proiecte VBA mari după efectuarea a ceva, este posibil să trebuiască să așteptăm ceva timp pentru a face alte sarcini. În astfel de scenarii, cum întrerupem codul macro pentru a ne îndeplini sarcina? Putem întrerupe codul VBA pentru o perioadă de timp specificată utilizând două funcții, iar acele funcții sunt „Așteptați” și „Adormiți”.
Sunteți liber să utilizați această imagine pe site-ul dvs. web, șabloane etc., Vă rugăm să ne furnizați un link de atribuireCum să oferiți atribuire?Link către articol de către hyperlink
De exemplu:
Sursa: VBA Pause (wallstreetmojo.com)
Cum să întrerupeți codul utilizând metoda de așteptare?
„Așteptați” este funcția pe care o folosim în VBA pentru a menține macrocomanda rulată pentru o anumită perioadă de timp. Prin aplicarea acestei funcții, trebuie să menționăm până la ce oră ar trebui să aștepte codul nostru.
De exemplu, dacă executați codul la 13:00:00, dacă furnizați ora ca „13:15:00”, atunci acesta va ține macrocomanda rulată timp de 15 minute.
Acum, uitați-vă la argumentul funcției WAIT în VBA.
În argumentul timpului, trebuie să menționăm la ce oră ar trebui să ne întrerupă sau să aștepte codul nostru.
De exemplu, uitați-vă la codul VBA de mai jos.
Cod:
Sub Pause_Example1() Range("A1").Value = "Hello" Range("A2").Value = "Welcome" Application.Wait ("13:15:00") Range("A3").Value = "To VBA" End Sub
Amintiți-vă, în timp ce rulez acest cod, ora sistemului meu este 13:00:00. De îndată ce rulez codul, acesta va executa primele două linii, adică
Range("A1").Value = "Hello” & Range("A2").Value = "Welcome"
Dar dacă te uiți la următoarea linie, scrie Application.Wait („13:15:00”), deci după executarea acelor sarcini de linie, macro-ul meu va fi întrerupt timp de 15 minute, adică de la 13:00:00, va aștepta până când ora sistemului va ajunge la 13:15:01.
Odată ce timpul meu de sistem ajunge la acel moment, acesta va executa liniile de cod rămase.
Range("A3").Value = "To VBA"
Cu toate acestea, acesta nu este cel mai bun mod de a practica codul de pauză. Să presupunem că rulați codul în momente diferite și apoi trebuie să folosim funcția ACUM VBA cu funcția TIME VALUE.
Acum funcția returnează data și ora curente conform sistemului la care lucrăm.
Valoare TIME funcția menține timpul de la 00:00:00 la 23:59:29.
Ok, presupunem că trebuie să întrerupem codul timp de 10 minute ori de câte ori rulăm codul, apoi putem folosi codul de mai jos.
Cod:
Sub Pause_Example1() Range("A1").Value = "Hello" Range("A2").Value = "Welcome" Application.Wait (Now() + TimeValue("00:00:10")) Range("A3").Value = "To VBA" End Sub
Acest lucru este similar cu codul anterior, dar singura diferență este că am adăugat funcția NOW & TIME VALUE.
Ori de câte ori rulăm acest cod, acesta va reține sau întrerupe execuția timp de 10 minute.
Cum să întrerupeți codul VBA utilizând metoda Sleep?
Somnul este o funcție complicată în VBA, deoarece nu este o funcție încorporată. Întrucât nu este încorporat pentru a-l pune la dispoziție pentru utilizare, trebuie să adăugăm codul de mai jos în partea de sus a modulului nostru.
Cod:
#If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If 'For 32 Bit Systems
Trebuie doar să copiați codul de mai sus și să-l lipiți în partea de sus a modulului.
Motivul pentru care trebuie să adăugăm codul de mai sus deoarece SLEEP este o funcție VBA prezentată în fișierele DLL Windows, deci trebuie să declarăm nomenclatura înainte de a începe subprocedura.
Ok, să ne uităm la exemplul funcției SLEEP acum.
Cod:
Sub Pause_Example2() Dim StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub
În primul rând, am declarat două variabile ca Șir.
Dim StartTime As String Dim EndTime As String
Apoi am atribuit funcția TIME excel variabilei StartTime. Funcția TIME returnează ora curentă conform sistemului.
StartTime = Time
Apoi, am atribuit același lucru să se afișeze în caseta de mesaj.
MsgBox StartTime
Apoi am aplicat funcția SLEEP ca Sleep (10000).
Aici 10000 este milisecunde, care este egal cu 10 secunde în VBA.
Apoi, în sfârșit, am atribuit o funcție TIME în plus variabilei Sfârșitul timpului.
Acum, din nou, am scris un cod pentru a arăta ora.
EndTime = Time
Aceasta va arăta diferența dintre ora de început și ora de sfârșit.
Acum voi executa codul și voi vedea care este ora de început.
Când execut codul, ora sistemului este 13:40:48, iar acum codul meu va dormi 10 secunde. În cele din urmă, timpul meu este următorul.
Deci, astfel, putem întrerupe codul de la executarea acestuia pentru o anumită perioadă de timp.
Articole recomandate
Acesta a fost un ghid pentru metoda de pauză VBA. Aici vom discuta despre cum să întrerupeți codul de la rularea utilizând funcția SLEEP și WAIT for în Excel VBA cu exemple și o foaie Excel descărcabilă. Puteți afla mai multe despre VBA din următoarele articole –
- Funcția VBA InStr
- VBA COUNTIF
- Funcția VBA Val
- Bara de progres VBA
- 3 cursuri
- 12 proiecte practice
- 43+ ore
- Acces complet pe viață
- Certificat de finalizare
AFLAȚI MAI MULTE >>