Cicli VBA - Elenco dei primi 4 tipi di loop (con esempi)

Loop VBA di Excel

I loop sono comunemente usati in tutti i linguaggi di programmazione, dove c'è una certa esigenza o un criterio quando abbiamo bisogno di un certo codice per eseguire determinate volte usiamo i loop per quei codici, ora ci sono molti tipi di loop in VBA come Do mentre, Do until, For Loop e For each loop, questi cicli aiutano l'esecuzione del codice finché la condizione non viene soddisfatta.

Consentitemi di fare questa affermazione proprio all'inizio. "Se vuoi padroneggiare in VBA, devi completare il master il concetto di loop nelle macro VBA."

Il ciclo non è altro che passare attraverso un intervallo di celle, passare attraverso un intervallo di oggetti per ripetere la stessa operazione per la raccolta di celle o oggetti. Invece di eseguire l'attività in un insieme separato di righe di codice utilizzando i loop, possiamo accorciare la lunghezza del codice il meno possibile.

Elenco dei primi 4 tipi di loop VBA

  1. Per il ciclo successivo
  2. Per ogni ciclo
  3. Fai mentre loop
  4. Fai fino al ciclo

Vediamo in dettaglio ciascuno di questi tipi.

Tipo # 1 - For Next Loop

Il ciclo For Next ci consente di scorrere l'intervallo di celle ed eseguire la stessa operazione per ogni cella specificata nel ciclo. Qui dobbiamo dire il numero iniziale e il numero finale.

Esempio

Ad esempio, se si desidera inserire numeri di serie da 1 a 10, di seguito è riportato il modo tradizionale di inserire i numeri di serie.

Sub SerialNumber ()

Intervallo ("A1"). Valore = 1
Intervallo ("A2"). Valore = 2
Intervallo ("A3"). Valore = 3
Intervallo ("A4"). Valore = 4
Intervallo ("A5"). Valore = 5
Intervallo ("A6"). Valore = 6
Intervallo ("A7"). Valore = 7
Intervallo ("A8"). Valore = 8
Intervallo ("A9"). Valore = 9
Intervallo ("A10"). Valore = 10

End Sub

Sembra a posto, non è vero? Ma il problema qui è solo 10 volte che abbiamo bisogno di eseguire questa operazione. Ma immagina cosa succede se vuoi inserire 100 o 1000 numeri, puoi scrivere il codice 100 o 1000 righe. È impossibile, ed è qui che la bellezza del ciclo For Next torna utile.

Passaggio 1: aprire la macro e dichiarare la variabile i come Integer.

Sub Insert_Serial_Number ()

Dim i As Integer

End Sub

Passaggio 2: ora apri il ciclo For . Qui menziona l'inizio e la fine del ciclo usando la variabile i.

Passaggio 3: ora scrivi il codice che desideri eseguire. Dobbiamo inserire numeri da 1 a 10 nelle celle da A1 a A10. Invece di applicare il metodo Range, applica il metodo Cells.

Chiede il numero di riga poiché all'inizio abbiamo già dichiarato la variabile i come numero intero. Il suo valore è 1. Quindi menziona mi piace il tuo numero di riga e 1 come numero di colonna.

Ora il valore del valore della cella corrente dovrebbe essere uno, invece di menzionare il numero uno menzionare i come valore. Poiché ogni volta che viene eseguito un ciclo temporale, il valore i aumenterà di 1.

Ora premi il tasto F8 per passare a una riga alla volta. Premere F8 fino a raggiungere il ciclo For.

Questo colore giallo indica che la riga di codice selezionata sta per essere eseguita. Posiziona un cursore su I e mostrerà il valore come zero.

Ora premi ancora una volta il tasto F8 e posiziona un cursore su i e ora il valore è 1.

Quindi i valori di i ovunque sono ora uguali a 1. " Cells (I, 1) .value = I" significa Cells (1, 1) .value = 1.

Premere il tasto F8 e vedere il valore nella cella A1. Devi vedere 1 nella cella A1.

Ora, se premi il tasto F8, tornerà al ciclo For ancora una volta perché il limite finale della variabile i è 10. Questa volta il valore I sarà 2.

For the Next loop verrà eseguito per 10 volte e inserirà i numeri di serie da 1 a 10.

Tipo # 2 - Per ogni ciclo

For Each loop in VBA serve per il ciclo attraverso una raccolta di oggetti. Per il ciclo successivo scorre le celle ed esegue l'attività, e il ciclo For Each scorre attraverso oggetti come fogli di lavoro, grafici, cartelle di lavoro, forme.

Usando questo ciclo, possiamo esaminare tutti i fogli di lavoro ed eseguire alcune attività. Ad esempio, puoi scorrere tutti i fogli di lavoro per nascondere e mostrare i fogli di lavoro.

Esempio 1

Se vuoi nascondere tutti i fogli di lavoro tranne il foglio su cui stai lavorando, come lo farai? Se hai 20 fogli nella cartella di lavoro, è un processo che richiede tempo. Ma con il ciclo FOR EACH, possiamo eseguire questa operazione.

Ho 5 fogli e voglio nascondere tutti i fogli tranne il foglio "Principale" sotto il codice che farebbe il compito per me.

Sottotitoli To_Hide_All_Sheet ()

Dim Ws come foglio di lavoro

Per ogni Ws in ActiveWorkbook.Worksheets

If Ws.Name "Main" Then
Ws.Visible = xlSheetVeryHidden
End If

Avanti Ws

End Sub

Esempio n. 2

Se vuoi scoprire tutti i fogli nascosti, il codice seguente farà il lavoro per te.

Sub To_UnHide_Specific_Sheet ()

Dim Ws come foglio di lavoro

Per ogni Ws in ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Avanti Ws

End Sub

Tipo # 3 - Do While Loop

Il ciclo Do While esegue l'attività mentre la condizione data è TRUE e, una volta che la condizione diventa FALSE, smetterà di funzionare. A differenza degli altri due cicli, Do While verifica la condizione alla fine del ciclo, non all'inizio.

Ti mostrerò l'esempio di inserimento di numeri di serie con il ciclo Do While.

Sub Do_While_Example ()

Dim i As Integer

i = 1 Esegui
finché i <11
celle (i, 1) .Valore = i
i = i + 1
ciclo

End Sub

Il ciclo precedente verrà eseguito finché i è minore di 11 e continua a inserire i numeri di serie. Nel momento in cui divento maggiore di 11, smetterà di funzionare.

Tipo # 4 - Do Until Loop

A differenza del ciclo Do While, il ciclo Do Until non viene eseguito mentre la condizione è TRUE; piuttosto, continua fino a quando la condizione è FALSE. Ad esempio, guarda il codice seguente.

Sub Do_Until_Example ()

Dim i As Integer

i = 1
Fai fino a quando i = 11
celle (i, 1) .Value = i
i = i + 1
Loop

End Sub

L'unica differenza tra il ciclo Do While e Do Until è l'operatore che specifichiamo. In Do, mentre abbiamo menzionato l'esecuzione del ciclo mentre i è minore di (<), 11 ma in do until loop, abbiamo menzionato di eseguire il ciclo Fino a quando i è uguale a (=) a 11.

Cose da ricordare

  • Esiste un esempio di ciclo VBA Excel più avanzato, ma tratteremo ciascuno di essi in dettaglio in un articolo separato.
  • Ogni ciclo è per le variabili oggetto.
  • Anche se Do While & Do Until sembra lo stesso menzionare la condizione è molto importante.
  • I loop sono concetti molto importanti.

Articoli interessanti...