Excel VBA Do Until Loop

Esegui fino a quando il ciclo continuerà a ripetere le istruzioni fino a quando la condizione / i criteri diventeranno VERO. Eseguirà le istruzioni purché le condizioni siano FALSE. Non appena la condizione / i criteri diventano VERO, termina il ciclo. Può essere considerato opposto al ciclo Do While, dove il ciclo funziona fintanto che i criteri sono VERO e termina non appena i criteri sono FALSI.

Vedi il diagramma di flusso sotto che spiega il funzionamento del ciclo Do Until:

Sintassi di Do Until Loop in Excel VBA

Do Until Loop ha due tipi di sintassi in Excel VBA.

Sintassi 1:

 Do Until (Condition) (Dichiarazioni da eseguire) Loop 

Sintassi 2:

 Do (Dichiarazioni da eseguire) Loop Until (Condition) 

La differenza di base tra queste due sintassi è di esecuzione. Nella prima sintassi, il loop controllerà sempre se la condizione è True o False. Se è False, ripeterà nuovamente il loop. Non appena la condizione / i criteri sono veri, termina il ciclo. In questo caso, esiste la possibilità che il loop venga terminato alla prima iterazione stessa (se la condizione è True). Quindi, in questo caso non otterrai alcun output. Tuttavia, nella seconda sintassi il ciclo eseguirà inizialmente le istruzioni e quindi verificherà se la condizione è True o False. Se la condizione è False, eseguirà nuovamente la stessa serie di istruzioni e verificherà la condizione. Se la prima iterazione stessa dà la condizione come True, questo ciclo termina, ma prima di ciò, verrà eseguita un'istruzione. In tal caso, otterremo almeno un'iterazione (come output null).

Infine, l'output dei due codici sarà lo stesso. Tuttavia, l'esecuzione è qualcosa che differisce da questi due.

Esempio di Excel VBA Do Until Loop

Vediamo gli esempi di Do Until Loop in Excel VBA.

Puoi scaricare questo modello Excel VBA Do Until Loop qui - Modello Excel VBA Do Until Loop

Esempio n. 1 - VBA Do Until Loop quando le condizioni sono controllate all'inizio

Seguire i passaggi seguenti per applicare il ciclo Do Until in Excel VBA.

Passaggio 1: inserire un nuovo modulo in Visual Basic Editor (VBE) per poter scrivere il codice.

Passaggio 2: definire una sotto-procedura che può memorizzare il codice macro che si scriverà.

Codice:

 Sottotitolo Do_Until_Ex1 () End Sub 

Passaggio 3: definire una nuova variabile "X" con il tipo di dati come "Long". Questa variabile può essere utilizzata come condizione / criterio nel ciclo Do Until.

Codice:

 Sottotitolo Do_Until_Ex1 () Dim X come sottotitolo lungo 

Passaggio 4: impostare il valore iniziale su 1 per la variabile X.

Codice:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Passaggio 5: avvia il ciclo con le parole chiave Do Until.

Codice:

 Sottotitolo Do_Until_Ex1 () Dim X As Long X = 1 Do Until End Sott 

Passaggio 6: specificare i criteri come X = 11 in Do Until. Questa è una condizione che consente al loop di interrompersi quando è True. Significa che il ciclo sarà in esecuzione fino a quando il valore di X = 11. Non appena il valore per X è uguale a 11, il ciclo termina.

Codice:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Until X = 11 End Sub 

Passaggio 7: ora utilizza le celle VBA. Funzione valore per poter aggiungere il quadrato di ogni numero fino a X sotto la prima colonna.

Codice:

 Sub Do_Until_Ex1 () Dim X come Long X = 1 Do Until X = 11 Cells (X, 1) .Value = X * X End Sub 

Passaggio 8: Ancora una volta, dobbiamo impostare l'incremento in X di 1, in modo che ogni volta che il ciclo viene eseguito e controlla la condizione, passerà al numero successivo e ne memorizzerà un valore al quadrato nella rispettiva cella fino al numero 11.

Codice:

 Sub Do_Until_Ex1 () Dim X come Long X = 1 Do Until X = 11 Cells (X, 1) .Value = X * XX = X + 1 End Sub 

Passaggio 9: Completa questo ciclo Do Until inserendo la parola chiave "Loop" alla fine del codice.

Codice:

 Sub Do_Until_Ex1 () Dim X come Long X = 1 Do Until X = 11 celle (X, 1) .Value = X * XX = X + 1 Loop End Sub 

In questo codice, volevamo avere valori quadrati per i numeri che iniziano da 1 a 11 (non appena un valore è 11, il ciclo termina). Sotto ogni cella del foglio Excel (fino alla cella numero 11), i valori verranno memorizzati. L'incremento di 1 unità consente di aumentare ogni volta un numero di 1 nel valore precedente di X e il valore al quadrato di quel numero viene stampato nella rispettiva cella. Ad esempio, il valore al quadrato per 3 verrà stampato sotto la terza cella del foglio Excel attivo. Questo ciclo dura fino a quando X non è uguale a 11. Pertanto, sotto la cella A1 alla cella A10, otteniamo i valori al quadrato del numero che iniziano da 1 a 10 (al numero 11 chiuso).

Passaggio 10: premere il pulsante Esegui o premere il tasto F5 per eseguire questo codice e vedere l'output.

Esempio n. 2 - Do Until loop quando le condizioni vengono verificate alla fine del loop

Seguire i passaggi seguenti per applicare il ciclo Do Until in Excel VBA.

Passaggio 1: definire una nuova procedura secondaria nel modulo VBE.

Codice:

 Sottotitolo Do_Until_Ex2 () End Sub 

Passaggio 2: definire una variabile "Y" con il tipo di dati come "Long". Questa variabile sarà utile per rendere cicliche le condizioni.

Codice:

 Sottotitolo Do_Until_Ex2 () Dim Y come sottotitolo lungo 

Passaggio 3: impostare il valore iniziale della variabile "Y" su 1.

Codice:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 End Sub 

Passaggio 4: aggiungere la condizione Do digitando Do sulla riga successiva dopo aver impostato il valore iniziale di Y su 1.

Codice:

 Sottotitolo Do_Until_Ex2 () Dim Y As Long Y = 1 Do End Sub 

Passaggio 5: aggiungere il pezzo di codice che si desidera eseguire in Do loop. Qui prenderemo lo stesso esempio di cui sopra (ci aiuterà a conoscere come gli output sono uguali ma le compilazioni sono diverse per due di questi codici).

Codice:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Esempio 2"). Celle (Y, 1) .Value = Y * Y End Sub 

Passaggio 6: dopo ogni iterazione del loop, si desidera aumentare il valore di 1 unità, impostare un comando per quello nella sezione Do.

Codice:

 Sottotitolo Do_Until_Ex2 () Dim Y come lungo Y = 1 Do Sheets ("Esempio 2"). Celle (Y, 1) .Valore = Y * YY = Y + 1 End Sub 

Passaggio 7: aggiungere un'istruzione di chiusura per questo ciclo con una parola chiave come "Ciclo".

Codice:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Esempio 2"). Celle (Y, 1) .Valore = Y * YY = Y + 1 Loop End Sub 

Resisti! C'è qualcosa di più. È necessario aggiungere i criteri / le condizioni fino a questo ciclo, questa volta dopo la parola chiave Loop. Permetterà al compilatore di verificare la condizione alla fine del loop.

Passaggio 8: aggiungere fino a Y = 11 come condizione dopo la parola chiave loop.

Codice:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Esempio 2"). Celle (Y, 1) .Valore = Y * YY = Y + 1 Loop Until Y = 11 End Sub 

Passaggio 9: esegui questo codice premendo F5 o il pulsante Esegui e vedi la magia sotto il foglio chiamato "Esempio 2".

Come funziona questo codice?

Il sistema quadra fino al valore di Y ogni volta sotto il ciclo e lo memorizza nella seconda colonna del foglio denominata "Esempio 2" riga per riga. Dopo ogni iterazione, il valore corrente di Y viene aumentato di 1 unità e il valore aggiornato viene quadrato e archiviato. Finché il valore è inferiore al valore del criterio (Y = 11), il codice eseguirà il quadrato e lo memorizzerà. Non appena il compilatore di valori raggiunge il valore Y = 11, interrompe l'esecuzione del codice e termina lo stesso.

Entrambi i codici danno un output simile, ma logicamente c'è una differenza nelle compilazioni per entrambi. Nel primo tipo di codice, la condizione viene verificata all'inizio del ciclo e se è False, solo il ciclo inizia a valutare l'espressione successiva. Tuttavia, nel secondo esempio, il codice avvia l'esecuzione del ciclo e l'esecuzione delle istruzioni Do all'inizio (memorizzazione dei valori in una memoria buffer per le istruzioni di esecuzione). Alla fine del ciclo, il compilatore presenta un criterio e verifica lo stesso con il valore del buffer.

Cose da ricordare

  • VBA Do Until è esattamente il contrario di Excel VBA Do While. VBA Do While loop funziona finché la condizione è TRUE. Una volta che la condizione è FALSE, il ciclo Do While viene terminato. D'altra parte, VBA Do Until funziona finché la condizione è FALSE. Non appena la condizione è TRUE, il loop viene terminato.
  • Ha due modi di procedere, uno in cui la condizione viene controllata all'inizio del ciclo e l'altra in cui la condizione viene controllata alla fine del ciclo.

Articoli consigliati

Questa è una guida a VBA Do Until Loop. Qui discutiamo come usare Excel VBA Do Until Loop insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. VBA While Loop
  2. LOOKUP Formula in Excel
  3. Tutorial completi sui loop VBA
  4. Tabella di ricerca in Excel

Categoria: