Come utilizzare il ciclo do while in vba?

VBA Do while è un ciclo in cui è necessario specificare una condizione e tale condizione deve rimanere vera affinché il ciclo venga eseguito. In parole semplici, prima controlla che la condizione che hai specificato sia vera o no e se quella condizione è vera esegue il ciclo, altrimenti niente.

Ad ogni iterazione verifica la condizione e solo successivamente esegue l’istruzione. Immagina di voler aggiungere fogli di lavoro in Excel ma il conteggio completo dei fogli di lavoro è 12 o meno. In questo caso, puoi utilizzare il ciclo do- while per scrivere questo codice.

Sintassi

Ecco la sintassi VBA per ogni ciclo successivo.

 Do While Condition [statements] Loop
istruzione-condizione-vba-do-through-loop
  1. Condizione: questa è la condizione specificata e questa condizione deve essere vera per eseguire il ciclo.
  2. Istruzione : la riga o le righe di codice su cui si desidera che il ciclo Do While esegua la condizione sono vere.
  3. Loop : questa è l’istruzione finale di un’iterazione del loop e indica a VBA di tornare indietro per testare nuovamente la condizione.

Esempio per comprendere il ciclo DO While

Per comprendere Do While Loop, scriviamo un codice per aggiungere fogli di lavoro a una cartella di lavoro quando il numero totale di fogli di lavoro è inferiore a dodici. Non è necessario che tu dica a VBA quanti fogli aggiungere e avrai sempre un totale di 12 fogli ogni volta che esegui questo codice.

Utilizzare i seguenti passaggi:

  1. Prima di tutto, devi digitare “Do While” sulla tastiera.
    type-the-keyword-do-while
  2. Successivamente, è necessario scrivere una condizione che possa verificare se il numero totale di fogli di lavoro nella cartella di lavoro è inferiore a dodici.
  3. Per fare ciò è necessario utilizzare il codice riportato di seguito, che conta il numero totale di fogli di lavoro e poi lo confronta con il numero dodici.
    condition-to-check-worksheets
  4. Successivamente, è necessario scrivere il codice per aggiungere un foglio di lavoro. Questo codice verrà eseguito quando la condizione specificata è vera.
    code-to-add-worksheet
  5. E, alla fine, digita la parola chiave “Loop” per completare il codice.
    type-loop-to-end-the-code

Ecco il codice completo che hai appena scritto:

 Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub

Ora lasciami spiegare come funziona questo codice: la condizione specificata controlla il numero totale di fogli di lavoro nella cartella di lavoro e quindi hai un operatore inferiore a che controlla il numero di fogli di lavoro rispetto a dodici.

Quando il numero di fogli di lavoro è inferiore a dodici, il ciclo continuerà a funzionare e continuerà ad aggiungere nuovi fogli di lavoro, ma una volta che il numero di fogli di lavoro raggiunge dodici, il ciclo si interromperà.

In termini semplici, il ciclo continuerà a funzionare finché il numero di fogli di lavoro sarà inferiore a dodici.

esempio di ciclo do- while

Il punto è questo: con il codice che hai appena scritto non è necessario specificare il numero di fogli di lavoro che desideri aggiungere, ma se vai al ciclo successivo devi specificare il numero di fogli di calcolo che desideri aggiungere.

Crea un ciclo per

Do Loop While è una versione estesa di Do While Loop poiché funziona allo stesso modo ma c’è una leggera differenza quando si testa la condizione.

In Do Loop Mentre esegue un’iterazione del ciclo prima di testare la condizione specificata e se la condizione è vera continuerà il ciclo.

Supponiamo che tu voglia scrivere del codice per controllare una password per eseguire del codice e continuare il loop mentre la password non è corretta (lo vediamo nell’esempio).

Sintassi

Ecco la sintassi di VBA Do Loop While.

sintassi-per-vba-do-loop-mentre
  1. Do: questa è la parola chiave iniziale del ciclo Do While.
  2. Dichiarazione: questa è la riga o le righe di codice che desideri eseguire nel ciclo.
  3. Loop While: questa è la parola chiave per continuare il ciclo e testare la condizione specificata.
  4. Condizione: questa è la condizione che desideri testare prima che il ciclo inizi la sua seconda iterazione e continui il ciclo.

Come puoi vedere nella sintassi di Do Loop While, prima eseguirà l’istruzione una volta, poi andrà alla condizione e la testerà, e se quella condizione è vera, avvierà il ciclo e lo continuerà mentre la condizione è VERO.

Esempio per comprendere il ciclo DO while

Per comprendere il ciclo do while, scriviamo del codice per visualizzare una casella di input e chiedere all’utente di inserire la password.

Questa casella di input continuerà a mostrare chiaramente che la password inserita dall’utente non è corretta per un massimo di cinque tentativi, dopodiché la casella di input scomparirà senza eseguire la procedura.

  1. Innanzitutto, dichiara due variabili necessarie per memorizzare la password e il contatore dei tentativi.
    declare-two-variables-you-need-for-storing
  2. Successivamente, digita la parola chiave “Fai”. Qui non è necessario definire prima la condizione come hai visto nella sintassi.
    type-the-do-keyword
  3. Successivamente, è necessario scrivere una riga di codice per visualizzare la casella di input che chiede all’utente di inserire la password.
    write-a-line-of-code
  4. Da qui è necessario impostare un contatore che possa contare fino a cinque (si somma ad ogni iterazione del ciclo).
    define-a-counter
  5. Ora digita la parola chiave “Loop While” e imposta due condizioni che possono controllare il valore inserito dall’utente nella casella di input e possono testare il valore del contatore se è inferiore a 5.
    type-keyword-loop-while-and-define-two-condition
  6. Alla fine, scrivi il codice che vuoi eseguire. Qui sto utilizzando l’istruzione IF che visualizzerà una finestra di messaggio se la password inserita dall’utente è corretta.
    write-the-code-you-want-to-run
 Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub

Lascia che ti spieghi questo codice.

  • Nella prima parte di questo codice hai il ciclo do while che mostrerà una casella di input all’utente e gli chiederà una password .
  • E se la password non è corretta, continuerà a eseguire il ciclo finché l’utente non inserirà la password corretta.
  • Ma poiché stai utilizzando un contatore per contare le iterazioni del ciclo e una volta che questo contatore raggiunge 5, il ciclo si fermerà .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *