Excel VBA Loop
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:
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:
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.
-
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:
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).
-
Inserire alcuni numeri nella colonna A.
-
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:
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.