loop Single | Double Loop | Triple Loop | Collegamento: # do-while-loop [Do While Loop]

Looping è una delle più potenti tecniche di programmazione. Un ciclo in Excel VBA vi permette di scorrere un intervallo di celle con pochi codici righe.

Loop singolo

È possibile utilizzare un singolo ciclo per ciclo attraverso una serie unidimensionale delle cellule.

Mettere un link: / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere le seguenti righe di codice:

Dim i As Integer

For i = 1 To 6

Cells(i, 1).Value = 100

Next i

Risultato quando si fa clic sul pulsante di comando sul foglio:

Single Loop in Excel VBA

Spiegazione: Le righe di codice tra For e Next verrà eseguito sei volte. Per i = 1, Excel VBA immette il valore 100 nella cella all’intersezione della riga 1 e colonna 1. Quando Excel VBA raggiunge Next i, aumenta i con 1 e ritorna al per economico. Per i = 2, Excel VBA immette il valore 100 nella cella all’intersezione della riga 2 e colonna 1, ecc

Nota: è buona norma sempre trattino (scheda) il codice tra le parole For e Next. Questo rende il codice più facile da leggere.

Double Loop

È possibile utilizzare un doppio anello ad anello attraverso una serie bidimensionale di cellule.

Mettere un link: / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere le seguenti righe di codice:

Dim i As Integer, j As Integer

For i = 1 To 6

For j = 1 To 2

Cells(i, j).Value = 100

Next j

Next i

Risultato quando si fa clic sul pulsante di comando sul foglio:

Double Loop in Excel VBA

Spiegazione: per i = 1 e j = 1, Excel VBA immette il valore 100 nella cella all’intersezione della riga 1 e colonna 1. Quando Excel VBA raggiunge Successivo j, j aumenta con 1 e ritorna al FOR j . Per i = 1 e j = 2, Excel VBA immette il valore 100 nella cella all’intersezione della riga 1 e colonna 2. Successivamente, Excel VBA ignora Successivo j j perché eseguito solo da 1 a 2. Quando Excel VBA raggiunge Next i , aumenta i con 1 e salta di nuovo alla dichiarazione per i. Per i = 2 e j = 1, Excel VBA immette il valore 100 nella cella all’intersezione della riga 2 e colonna 1, ecc

Triple Loop

È possibile utilizzare un triplo loop per scorrere le gamme bidimensionali su più fogli di lavoro di Excel.

Mettere un link: / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere le seguenti righe di codice:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3

For i = 1 To 6

For j = 1 To 2

Worksheets(c).Cells(i, j).Value = 100

Next j

Next i

Next c

Spiegazione: l’unica modifica apportata rispetto al codice per il doppio anello è che abbiamo aggiunto un altro ciclo e fogli di lavoro aggiunto (c). davanti a Celle per ottenere la gamma bidimensionale sul primo foglio per c = 1, il secondo foglio per c = 2 e il terzo foglio per c = 3. Scaricare il file di Excel per vedere questo risultato.

Do While Loop

Oltre al ciclo For Poi, ci sono altri loop in Excel VBA. Ad esempio, il ciclo Do While. Codice collocato tra Do While e Loop sarà ripetuto finché la parte dopo Do Mentre è vero.

  1. Inserire un link : / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere le seguenti righe di codice:

Dim i As Integer

i = 1

Do While i < 6

Cells(i, 1).Value = 20

i = i + 1

Loop

Risultato quando si fa clic sul pulsante di comando sul foglio:

Do While Loop

Spiegazione: fintanto che i è inferiore a 6, Excel VBA immette il valore 20 nella cella all’intersezione della riga ie colonna 1 e incrementi i di 1. In Excel VBA (e in altri linguaggi di programmazione), il simbolo ‘= ‘mezzi diventa. Ciò non significa uguale. Così i = i + 1 mezzo i diventa i + 1. In altre parole: prendo il valore attuale di I e aggiungi 1 ad esso. Ad esempio, se i = 1, i diventa 1 + 1 = 2. Di conseguenza, il valore 20 verrà inserito nella colonna A cinque volte (non sei perché Excel VBA arresta quando ièuguale 6).

  1. Inserire alcuni numeri nella colonna A.

Any Number Of Rows

  1. Inserire un link : / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere le seguenti righe di codice:

Dim i As Integer

i = 1

Do While Cells(i, 1).Value <> ""

Cells(i, 2).Value = Cells(i, 1).Value + 10

i = i + 1

Loop

Risultato quando si fa clic sul pulsante di comando sul foglio:

Advanced Do While Loop

Spiegazione: fintanto Cellule (i, 1) .Value non è vuota (<> strumenti non uguale a), Excel VBA immette il valore nella cella all’intersezione della riga ie colonna 2, che è 10 superiore al valore nella cella all’intersezione della riga ie colonna 1. Excel VBA arresta quando ièuguale 7 perché cellule (7, 1) .Value è vuoto. Questo è un ottimo modo per eseguire un ciclo attraverso qualsiasi numero di righe su un foglio di lavoro.