Casa Social media Come utilizzare i cicli successivi in ​​Excel 2016 VBA - dummies

Come utilizzare i cicli successivi in ​​Excel 2016 VBA - dummies

Sommario:

Video: Excel VBA: estrarre informazioni da un database 2025

Video: Excel VBA: estrarre informazioni da un database 2025
Anonim

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

Un esempio For-Next

L'esempio seguente utilizza un ciclo For-Next per sommare i primi 1 000 numeri positivi. La variabile Totale inizia come zero. Quindi si verifica il loop. La variabile Cnt è il contatore del ciclo. 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 affermazione aggiunge il valore di Cnt alla variabile Totale. Al termine del ciclo, una MsgBox visualizza la somma dei numeri.

SubAddNumbers () Dim Totale As Double Dim Cnt As Long Totale = 0 Per Cnt = 1 To 1000 Totale = Total + Cnt Successivo Cnt MsgBox Totale End Sub

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

Esempi For-Next con Step

È 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 compresi tra 1 e 1, 000:

SubOddNumeri () Dim Totale As Double Dim Cnt As Long Totale = 0 Per Cnt = 1 A 1000 Step 2 Totale = Totale + Cnt Next Cnt MsgBox Total End Sub

Questa volta, Cnt inizia come 1 e quindi assume 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 poiché 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 ombreggiatura grigio chiaro a ogni terza riga, dalla riga 1 alla riga 100.

Sub ShadeEveryThirdRow () Dim i As Long For i = 1 To 100 Step 3 Rows (i). Interni. Colore = RGB (200, 200, 200) Next i End Sub

Controlla il risultato dell'esecuzione di questa macro.

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

Un esempio For-Next con un'istruzione Exit For

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

L'esempio seguente mostra l'istruzione Exit For. Questa routine è una procedura Function, destinata a 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 To Len (Str) If IsNumeric (Mid (Str, i, 1)) Quindi Esci da Else TextPart = TextPart & Mid (Str, i, 1) End If Next i End Function

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.

Se il carattere non è numerico, viene aggiunto al valore restituito (che è lo stesso del nome della funzione). L'unica volta che il ciclo esaminerà ogni carattere è se la stringa passata come argomento non contiene caratteri numerici.

Un esempio For-Next annidato

È possibile avere un numero qualsiasi di istruzioni nel ciclo e annidare i cicli For-Next all'interno di altri cicli For-Next.

L'esempio seguente utilizza un ciclo For-Next annidato per inserire numeri casuali in un intervallo di celle di 12 righe per 5 colonne. Si noti che la routine esegue il ciclo interno (il ciclo con il contatore Riga) una volta per ciascuna iterazione del ciclo esterno (il ciclo con il contatore Col). In altre parole, la routine esegue l'istruzione Cells (Row, Col) = Rnd 60 volte.

Queste celle sono state riempite utilizzando un ciclo For-Next annidato.
Sub FillRange () Dim Col As Long Dim Row As Long Per Col = 1 A 5 per Row = 1 To 12 Cells (Row, Col) = Rnd Next Row Successivo Col End Sub

Il prossimo esempio usa nidificato Per -Prossimi successivi per inizializzare una matrice 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 combinazione diversa di valori per i, j, ek:

Sub NestedLoops () Dim MyArray (10, 10, 10) Dim i As Long Dim j As Long Dim k As Long For i = 1 To 10 For j = 1 To 10 Per k = da 1 a 10 MyArray (i, j, k) = 100 Avanti k Successivo j Successivo i 'Altre istruzioni vai qui End Sub

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

Uso dei cicli per creare un motivo a scacchiera.

Il contatore delle file scorre da 1 a 8. Un costrutto If-Then determina quale struttura annidata For-Next usare. Per le righe dispari, il contatore Col inizia con 2. Per le righe con numero pari, il contatore Col inizia con 1. Entrambi i cicli usano un valore Step di 2, quindi le celle alternative sono interessate. Due ulteriori istruzioni rendono le celle quadrate (proprio come una vera scacchiera).

Sub MakeCheckerboard () Dim R As Long, C As Long For R = 1 To 8 Se WorksheetFunction. IsOdd (R) Then For C = 2 To 8 Step 2 Celle (R, C). Interni. Colore = 255 Successivo C Else per C = da 1 a 8 Fase 2 Celle (R, C). Interni. Colore = 255 Successivo C End If Next R Rows ("1: 8").RowHeight = 35 Columns ("A: H"). ColumnWidth = 6. 5 End Sub
Come utilizzare i cicli successivi in ​​Excel 2016 VBA - dummies

Scelta dell'editore

Come impostare gli attributi per una proprietà dichiarata dell'app iOS - manichini

Come impostare gli attributi per una proprietà dichiarata dell'app iOS - manichini

È Possibile impostare alcuni attributi di proprietà quando dichiari una proprietà per la tua app iOS. Dai un'occhiata per scoprire maggiori dettagli sugli attributi che puoi impostare durante la programmazione. Setter semantica / proprietà Queste proprietà specificano come deve essere gestita la memoria della variabile di istanza: strong (simile a retain, che è stato utilizzato prima di ARC) crea un accessor ...

Come osservare gli avvisi di memoria insufficiente nella tua app iOS - dummies

Come osservare gli avvisi di memoria insufficiente nella tua app iOS - dummies

Se hai fatto tutto correttamente, in una grande app iOS, potresti semplicemente esaurire la memoria. Quando si verifica questa situazione, il sistema invia una notifica di memoria insufficiente alla tua app, ed è qualcosa a cui devi prestare attenzione. Se non lo fai, è una ricetta affidabile per il disastro. UIKit offre diversi modi per te ...

Come impostare le preferenze Xcode per la tua app iOS - dummies

Come impostare le preferenze Xcode per la tua app iOS - dummies

Xcode ti offre molte opzioni . Probabilmente non cambierai nessuno di questi fino a quando non avrai un po 'più di esperienza di programmazione per le app iOS sotto la cintura, ma alcune opzioni meritano davvero di essere pensate adesso. Le seguenti operazioni descrivono come impostare alcune delle preferenze che potrebbero essere interessate. Seguire questi passaggi per ...

Scelta dell'editore

Dati Magazzino: un esempio ODS - dummies

Dati Magazzino: un esempio ODS - dummies

Ecco un esempio di data warehousing per aiutarti a comprendere ODS (dati operativi negozio). Supponiamo che tu lavori in una grande società finanziaria che fornisce una varietà di servizi alle élite di aziende e persone in tutto il mondo. La tua azienda è cresciuta fino alla sua forma attuale a seguito di una serie di fusioni e acquisizioni ...

Decisioni relative ai dati esistenti della tua azienda - dummy

Decisioni relative ai dati esistenti della tua azienda - dummy

Quando inizi a pianificare una soluzione di data warehouse per la tua azienda, vorrai scovare un inventario completo di file di estrazione che riempiano il ruolo del data warehouse preistorico, ognuno dei quali probabilmente servirà le esigenze di una singola organizzazione. Successivamente, tu e gli utenti aziendali avete raggiunto il consenso su ciò che è buono in merito a ...

Hai bisogno di consulenti di Data Warehousing? - dummies

Hai bisogno di consulenti di Data Warehousing? - dummies

Probabilmente avete bisogno di consulenti di data warehousing, non perché le persone all'interno della vostra organizzazione non siano in grado di lavorare con la tecnologia di data warehousing o di completare un progetto senza un aiuto esterno. Un semplice fatto dell'attuale vita IT aziendale travolge fattori come capacità e conoscenza: questa è un'era basata sulla consulenza, semplice e semplice. Dai primi anni '80, ...

Scelta dell'editore

Come scattare foto in time-lapse con la fotocamera digitale - dummies

Come scattare foto in time-lapse con la fotocamera digitale - dummies

Imaging time-lapse è semplice: devi solo impostare la tua fotocamera digitale e scattare una foto ogni tanto per creare una sequenza di foto time-lapse. Creare foto time-lapse è semplice come premere un pulsante:

Come utilizzare luce esistenti quando si scattano foto digitali - manichini

Come utilizzare luce esistenti quando si scattano foto digitali - manichini

Se non si ha accesso a apparecchi di illuminazione per le tue foto digitali, puoi regolare la luce esistente (chiamata luce ambientale dai fotografi) per creare l'effetto desiderato. Lavora con la luce esistente - luce che "trova" in una posizione (al contrario delle luci dello studio):

Come scattare ritratti di animali - manichini

Come scattare ritratti di animali - manichini

Puoi creare meravigliose foto di animali selvatici ingrandendo e ingrandendo prendendo un ritratto. Simile al ritratto di una persona, vuoi che l'animale sia messo a fuoco, contro uno sfondo sfocato e non in competizione con il soggetto. Creare un ritratto di un animale richiede pazienza e pratica, ...