Come utilizzare i cicli For-Next in Excel 2016 VBA

Come utilizzare i cicli For-Next in Excel 2016 VBA

Il tipo più semplice di ciclo nella programmazione VBA di Excel è un ciclo For-Next. Il ciclo è controllato da una variabile contatore, che inizia a un valore e si ferma a un altro valore. Le istruzioni tra l'istruzione For e l'istruzione Next sono le istruzioni che vengono ripetute nel ciclo.

Un esempio per il prossimo

L'esempio seguente usa un ciclo For-Next per sommare i primi 1.000 numeri positivi. La variabile Total inizia da zero. Quindi si verifica il ciclo. La variabile Cnt è il contatore di loop. Inizia come 1 e viene incrementato di 1 ogni volta attraverso il ciclo. Il ciclo termina quando Cnt è 1.000.

Questo esempio ha solo un'istruzione all'interno del ciclo. Questa istruzione aggiunge il valore di Cnt alla variabile Total. Al termine del ciclo, un MsgBox visualizza la somma dei numeri.

Sub AggiungiNumeri()
  Dim totale come doppio
  Dim Cnt As Long
  Totale = 0
  Per Cnt = da 1 a 1000
    Totale = Totale + Cnt
  Avanti Cnt
  MsgBox Total
Fine sottotitolo

Poiché il contatore del ciclo è una variabile normale, è possibile scrivere codice per modificarne il valore all'interno del blocco di codice tra le istruzioni For e Next. Questa, tuttavia, è una pessima pratica.

Esempi For-Next con un passaggio

È possibile utilizzare un valore Step per saltare alcuni valori del contatore in un ciclo For-Next. Ecco l'esempio precedente, riscritto per sommare solo i numeri dispari tra 1 e 1.000:

Sub AggiungiNumeriDispari()
  Dim totale come doppio
  Dim Cnt As Long
  Totale = 0
  Per Cnt = da 1 a 1000 Passaggio 2
    Totale = Totale + Cnt
  Avanti Cnt
  MsgBox Total
Fine sottotitolo

Questa volta, Cnt inizia come 1 e poi assume i valori di 3, 5, 7 e così via. Il valore Step determina come viene incrementato il contatore. Si noti che il valore del ciclo superiore (1000) non viene effettivamente utilizzato perché il valore più alto di Cnt sarà 999.

Ecco un altro esempio che utilizza un valore Step di 3. Questa procedura funziona con il foglio attivo e applica un'ombreggiatura grigio chiaro a ogni terza riga, dalla riga 1 alla riga 100.

Sub ShadeEveryThirdRow()
  Dim I As Long
  Per i = da 1 a 100 Passaggio 3
    Righe(i).Interno.Colore = RGB(200, 200, 200)
  Avanti io
Fine sottotitolo

Controlla il risultato dell'esecuzione di questa macro.

Come utilizzare i cicli For-Next in Excel 2016 VBA

Utilizzo di un ciclo per applicare l'ombreggiatura dello sfondo alle righe.

Un esempio For-Next con un'istruzione Exit For

Un ciclo For-Next può anche includere una o più istruzioni Exit For all'interno del ciclo. Quando VBA incontra questa istruzione, il ciclo termina immediatamente.

L'esempio seguente mostra l'istruzione Exit For. Questa routine è una procedura Function, destinata ad essere utilizzata in una formula del foglio di lavoro. La funzione accetta un argomento (una variabile denominata Str) e restituisce i caratteri a sinistra della prima cifra numerica. Ad esempio, se l'argomento è "KBR98Z", la funzione restituisce "KBR".

Funzione TextPart(Str)
  Dim I As Long
  TextPart = ""
  Per i = 1 a Len(Str)
    If IsNumeric(Mid(Str, i, 1)) Then
      Esci per
    Altro
      TextPart = TextPart & Mid(Str, i, 1)
    Finisci se
  Avanti io
Fine funzione

Il ciclo For-Next inizia con 1 e termina con il numero che rappresenta il numero di caratteri nella stringa. Il codice utilizza la funzione Mid di VBA per estrarre un singolo carattere all'interno del ciclo. Se viene trovato un carattere numerico, viene eseguita l'istruzione Exit For e il ciclo termina prematuramente.

If the character is not numeric, it is appended to the returned value (which is the same as the function’s name). The only time the loop will examine every character is if the string passed as the argument contains no numeric characters.

A nested For-Next example

You can have any number of statements in the loop and nest For-Next loops inside other For-Next loops.

The following example uses a nested For-Next loop to insert random numbers into a 12-row-by-5-column range of cells. Notice that the routine executes the inner loop (the loop with the Row counter) once for each iteration of the outer loop (the loop with the Col counter). In other words, the routine executes the Cells(Row, Col) = Rnd statement 60 times.

Come utilizzare i cicli For-Next in Excel 2016 VBA

These cells were filled by using a nested For-Next loop.

Sub FillRange()
  Dim Col As Long
  Dim Row quanto più a lungo
  Per Col = da 1 a 5
    Per riga = da 1 a 12
      Celle(Riga, Col) = Rnd
    Riga successiva
  Colpo successivo
Fine sottotitolo

Il prossimo esempio usa cicli For-Next annidati per inizializzare un array tridimensionale con il valore 100. Questa routine esegue l'istruzione nel mezzo di tutti i cicli (l'istruzione di assegnazione) 1.000 volte (10 * 10 * 10), ogni volta con una diversa combinazione di valori per i, j e k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim I As Long
  Dim j As Long
  Dim k As Long
  Per i = da 1 a 10
    Per j = da 1 a 10
      Per k = da 1 a 10
        MyArray(i, j, k) = 100
    Successivo k
  Avanti j
Avanti io
  'Altre dichiarazioni vanno qui
Fine sottotitolo

Ecco un esempio finale che utilizza cicli For-Next annidati, con un valore Step. Questa procedura crea una scacchiera cambiando il colore di sfondo delle celle alternate.

Come utilizzare i cicli For-Next in Excel 2016 VBA

Utilizzo di loop per creare un motivo a scacchiera.

Il contatore Row esegue un ciclo da 1 a 8. Un costrutto If-Then determina quale struttura For-Next nidificata utilizzare. Per le righe dispari, il contatore Col inizia con 2. Per le righe pari, il contatore Col inizia con 1. Entrambi i cicli utilizzano un valore Step di 2, quindi le celle alternative sono interessate. Due istruzioni aggiuntive rendono le celle quadrate (proprio come una vera scacchiera).

Sub MakeCheckerboard()
  Dim R tanto lungo, C quanto lungo
  Per R = da 1 a 8
    Se WorksheetFunction.IsOdd(R) Then
     Per C = da 2 a 8 Passaggio 2
       Celle(R, C).Interno.Colore = 255
     Avanti C
    Altro
     Per C = da 1 a 8 Passaggio 2
       Celle(R, C).Interno.Colore = 255
     Avanti C
    Finisci se
  Successivo R
  Righe(“1:8”).RowHeight = 35
  Colonne("A:H").ColumnWidth = 6.5
Fine sottotitolo

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet è una piattaforma di lavoro dinamica che ti consente di gestire progetti, creare flussi di lavoro e collaborare con il tuo team.

SharePoint

SharePoint

SharePoint è un sistema di collaborazione basato sul Web che utilizza una varietà di applicazioni per flussi di lavoro, database di "elenco" e altri componenti Web, nonché funzionalità di sicurezza per fornire controllo ai gruppi aziendali che lavorano insieme.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar è un'applicazione per la visualizzazione del calendario sul tuo telefono, che ti aiuta a vedere rapidamente la data lunisolare sul tuo telefono, organizzando così il tuo lavoro importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook è un'applicazione aziendale e di produttività sviluppata da Microsoft Corporation.

Fare clic su

Fare clic su

ClickUp è una delle piattaforme di produttività più apprezzate per qualsiasi azienda. Grandi aziende come Google, Booking.com, San Diego Padres e Uber utilizzano ClickUp per aumentare la produttività sul posto di lavoro.

Visualizzatore PDF-XChange 2.5.322.10

Visualizzatore PDF-XChange 2.5.322.10

Il PDF è diventato un formato comunemente utilizzato per leggere, creare e inviare documenti di testo. A sua volta, c'è stato un aumento del numero di programmi utilizzati per questo tipo di documentazione. PDF-XChange Viewer fa parte di un numero crescente di visualizzatori PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice offre una suite completa di applicazioni Office che rivaleggiano con Microsoft 365, in particolare in Excel, PowerPoint e Word. Ti consente di gestire i tuoi progetti in modo più efficace e supporta diversi formati di file.

Scarica iTaxviewer 1.8.7

Scarica iTaxviewer 1.8.7

Il software iTaxViewer è il software di lettura di file XML più popolare oggi. Questo software è un'applicazione per la lettura delle dichiarazioni fiscali elettroniche in formato XML del Dipartimento Generale delle Imposte.

Lettore PDF Nitro

Lettore PDF Nitro

Nitro PDF Reader è un pratico editor PDF che copre tutte le attività di base che la maggior parte delle persone esegue ogni giorno con i documenti PDF.

Foxit Reader 12

Foxit Reader 12

Foxit Reader è principalmente un lettore PDF e consente anche di creare file PDF, firmarli, modificarli e aggiungere annotazioni. Funziona su sistemi operativi, ci sono plugin per vari programmi del pacchetto Microsoft Office.