VBA Do Loops - Come utilizzare Excel VBA Do Loops?

Excel VBA Do Loop

VBA Do loop , è un insieme di istruzioni all'interno di una sottoprocedura in cui il codice viene eseguito un numero specifico di volte fino al raggiungimento dei criteri desiderati o al superamento di qualsiasi soglia o fino a quando non si ottengono i dati richiesti.

Sebbene il ciclo funzioni sui risultati logici, continua a eseguire il ciclo avanti e indietro mentre la condizione di test è TRUE. Nel momento in cui la condizione di test ritorna FALSE, uscirà dal ciclo. I loop sono il cuore di qualsiasi linguaggio di programmazione. Nei nostri articoli, dimostriamo l'importanza dei loop e dei modi per codificarli. In questo articolo, ti mostriamo come utilizzare Do Loop.

Come utilizzare il VBA Do Loop?

Esempio # 1 - Condizione alla fine del ciclo

Abbiamo visto il test delle condizioni all'inizio del ciclo. Nel codice precedente, abbiamo visto l'esempio dell'inserimento di numeri di serie e il codice era così.

Codice:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Cells (k, 1) .Value = kk = k + 1 Loop End Sub

Ora puoi eseguire questo codice manualmente o tramite il tasto di scelta rapida F5 per vedere il risultato.

Questo codice inserirà i numeri di serie da 1 a 10.

Ma possiamo anche testare la condizione alla fine del ciclo. Dobbiamo usare la parola "while" e la condizione test alla fine dopo la parola Loop.

L'unica modifica qui è applicare il test alla fine, come mostrato di seguito.

Codice:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

In questo modo, possiamo anche testare la condizione alla fine dell'istruzione del ciclo.

Nota: il codice verrà eseguito, quindi verifica la condizione per tornare al ciclo ancora una volta o meno. Ciò significa che verrà eseguito prima e quindi tenterà la situazione in un secondo momento.

Esempio # 2 - Somma usando Do While Loop

Supponi di avere dati sulle vendite e sui costi nel tuo foglio Excel. Di seguito è riportato il set di dati fittizi che ho creato per il calcolo.

Ora dobbiamo ottenere il valore del profitto nella colonna C. Ho già creato un codice che farà un lavoro per me.

Codice:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + Celle (k, 2) k = k + 1 Loop End Sub
LR = Cells (Rows.Count, 1) .End (xlUp) .Row

Questo codice identificherà l'ultima riga utilizzata nella prima colonna. Ciò rende il codice dinamico perché se c'è qualche aggiunta o cancellazione dei dati, questo aggiusterà il tempo della mia sequenza per eseguire il ciclo.

k = 2

Vogliamo che il calcolo venga eseguito dalla seconda cella in poi. Quindi il valore iniziale di k è 2.

Fai mentre k <= LR

Come ho detto, LR troverà l'ultima riga utilizzata nella prima colonna. Ciò significa che il ciclo verrà eseguito mentre k è <= al valore di LR. In questo caso, ho 10 righe, quindi LR = 10.

Il ciclo continuerà finché il valore k non raggiunge 10. Una volta che la quantità ha superato 10 cicli, si fermerà.

Ora puoi eseguire questo codice utilizzando il tasto di scelta rapida F5 o manualmente per vedere il risultato.

Esempio n. 3: istruzione Exit nel ciclo Do While

Possiamo anche uscire dal ciclo mentre la condizione è ancora TRUE. Ad esempio, prendi anche i dati sopra riportati.

Supponi di non voler eseguire il calcolo completo, ma devi solo calcolare le prime 5 righe di profitto e non appena raggiunge la sesta riga, vuoi uscire dal ciclo. Questo può essere fatto usando la funzione IF in Excel. Il codice seguente include l'istruzione di uscita.

Codice:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k 6 Then Exit Do Cells (k, 3) .Value = Cells ( k, 1) + Celle (k, 2) k = k + 1 Loop End Sub
"If k> 6 Then Exit Do"

Questa riga di codice avvierà il processo di uscita. Il ciclo continuerà a funzionare finché il valore di k non raggiunge 6. Nel momento in cui supera 6, la condizione If eseguirà il codice, "Exit Do".

Ora puoi eseguire questo codice utilizzando il tasto di scelta rapida F5 o manualmente per vedere il risultato.

Cose da ricordare

  • Fare. Il ciclo funziona sui risultati logici e continua a eseguire il ciclo avanti e indietro mentre la condizione di test è TRUE. Nel momento in cui la condizione di test ritorna FALSE, uscirà dal ciclo.
  • Possiamo uscire dal ciclo in qualsiasi momento regolando un altro test logico all'interno del cerchio utilizzando la funzione IF.
  • Se la condizione o il test viene fornito all'inizio del ciclo, prima controllerà il test e procederà ulteriormente solo se è VERO.
  • Se la condizione o il test viene fornito alla fine del ciclo, eseguirà prima il blocco di codice all'interno dell'istruzione del ciclo e, in futuro, verificherà la condizione per decidere se tornare indietro per eseguire il ciclo ancora una volta o no.

Articoli interessanti...