Excel VBA Pause (Break / Stop) și reluați o macro

Acest tutorial va arăta cum se întrerupe (se întrerupe) și se reia o macro în Excel.

Posibilitatea de a întrerupe o macrocomandă în timp ce testați codul VBA care a fost scris este o modalitate utilă de a afla unde pot exista „bug-uri” în codul nostru. Există o serie de modalități prin care putem rupe funcționarea macro-ului și apoi relua-l din punctul în care macro-ul a fost întrerupt.

Combinația de tastatură Control și Break

Dacă menținem apăsată tasta de control și apoi apăsăm tasta Pauză / Pauză atunci când rulează codul VBA, codul se va opri imediat cu un mesaj de depanare care ne avertizează că rularea macro-ului a fost întreruptă.

Putem apoi apăsa pe Continua butonul din caseta de dialog care apare pentru a continua rularea macro-ului. Alternativ, dacă apăsăm apoi butonul Debug din caseta de dialog, macro-ul va evidenția poziția în care a încetat să ruleze. Așezând mouse-ul peste orice variabilă existentă, putem vedea apoi ce este stocat în variabile. Acest lucru poate fi foarte util în depanarea codului nostru.

Apoi putem face clic pe Alerga butonul din panglică (sau apăsați F5 de pe tastatură) pentru a relua rularea macro-ului.

Adăugarea punctelor de întrerupere la macro

Înainte de a începe macro-ul, putem insera puncte de rupere în macro pentru a opri macro-ul ca linii specifice de cod.

Putem rula codul făcând clic pe Alerga din panglică sau apăsând F5 pe tastatură. Macro-ul se va opri la punctul de pauză.

Apăsați din nou butonul Executare (subtitrarea va spune acum Continuare) pentru a relua macro-ul sau apăsați F5.

S-ar putea să existe alte momente în care rularea unei macrocomenzi VBA ar putea fi necesară întreruperii. Acest lucru se poate face și folosind metodele de așteptare și somn. Aceste metode sunt folosite mai mult pentru a întârzia progresul real al macro-ului, mai degrabă decât pentru a fi utilizate pentru a depana codul real.

De exemplu, această linie de cod va întârzia macro-ul să ruleze până când au trecut încă 5 secunde.

123 Cerere.Aștepta (Acum + TimeValue("0:00:05"))

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave