VBA Break For Loop

Excel VBA Break For Loop

In VBA Break For Loop è anche noto come exit for loop, a ogni loop in qualsiasi procedura sono state fornite alcune serie di istruzioni o criteri per eseguire senza tempo, ma è molto comune che alcuni loop entrino in un loop infinito corrompendo così il codice in tali scenari abbiamo bisogno di break for o exit for loop per uscire da determinate situazioni.

Supponiamo di aver istruito il ciclo in modo che venga eseguito per 10 volte e in base alla condizione data se il valore della cella o qualsiasi altro criterio fornito ha esito positivo, deve uscire dal ciclo excel prima di completare la quota del ciclo completo di 10. In questo articolo , ti mostreremo come uscire dal ciclo in base ai criteri forniti.

Come interrompere / uscire dai loop in VBA?

Puoi scaricare questo modello Excel VBA Break For Loop qui - Modello Excel VBA Break For Loop

# 1 - Pausa per il prossimo ciclo

VBA For Next Loop viene utilizzato per eseguire il loop sulle celle ed eseguire una serie specifica di attività. Per un esempio, guarda il codice VBA sottostante.

Codice:

 Sub Exit_Loop () Dim K As Long For K = 1 to 10 Cells (K, 1) .Value = K Next K End Sub 

Questo inserirà i numeri di serie dalla cella A1 alla A10.

Questa è la cosa ovvia con For Next Loop.

Ora voglio interrompere il ciclo quando qualsiasi valore trovato nelle prime 10 celle, per questo ho inserito un valore di testo nella cella A8.

Ora voglio istruirlo nel codice dicendo "se la cella del ciclo ha un certo valore deve uscire dal ciclo prima del limite predeterminato".

Codice:

 Sub Exit_Loop () Dim K As Long For K = 1 to 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else Exit For End If Next K End Sub 

Guarda queste righe di codice:

If Cells (K, 1) .Value = "" Then

Celle (K, 1). Valore = K

Altro

  Esci per

Finisci se

Dice If Cells (K, 1) .Value = “” looping cell is equal to nothing continue the loop of inserting serial numbers from 1 to 10.

L'ultima parte del ciclo dice:

Altro

  Esci per

Se la condizione precedente non è TRUE, il ciclo "Exit For".

Ora esegui il codice che inserirà i numeri di serie fino alla cella A7.

Il codice sopra è uscito immediatamente dal ciclo senza dire nulla, come sappiamo che è uscito dal ciclo.

Per cancellare questa ambiguità dobbiamo inserire una semplice finestra di messaggio VBA come di seguito.

Codice:

 Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else MsgBox "Abbiamo una cella non vuota, nella cella" & Celle (K, 1) .Address & vbNewLine & "Stiamo uscendo dal ciclo" Exit For End If Next K End Sub 

Quando si esegue il ciclo attraverso la cella se viene trovata una cella non vuota, verrà visualizzato il messaggio che dice "Abbiamo una cella non vuota, nella cella A8. Stiamo uscendo dal giro ”.

Questo informerà l'utente dell'uscita dal loop anche con un indirizzo di cella. Se un valore è stato inserito per errore, possiamo controllare l'indirizzo della cella restituito nella finestra del messaggio.

# 2 - Break Do Until Loop

Come come siamo usciti dal ciclo For Next, allo stesso modo possiamo uscire anche dal ciclo "Do Until". Ad esempio, guarda il codice seguente.

Codice:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Until K = 11 celle (K, 1) .Value = KK = K + 1 Loop End Sub 

Questo codice svolge anche il compito di inserire i numeri di serie. Ad esempio, se desideriamo uscire dal ciclo quando il valore della variabile "k" diventa 6, dobbiamo inserire i criteri come IF k = 6, quindi uscire dal ciclo.

Codice:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Until K = 11 If K <6 Then Cells (K, 1) .Value = K Else Exit Do End If K = K + 1 Loop End Sub 

Questo eseguirà il ciclo fino a quando il valore della variabile diventa 6, dopodiché uscirà dal ciclo. Se desideri mostrare il messaggio all'utente, puoi aggiungere anche la casella del messaggio.

Codice:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Until K = 11 If K 5 "Exit Do End If K = K + 1 Loop End Sub 

Questo mostrerà il messaggio qui sotto.

In questo modo, in base ai criteri forniti, possiamo uscire dal ciclo se i criteri sono VERO oppure possiamo continuare il ciclo.