Til næste sløjfe i Excel VBA - En begyndervejledning med eksempler

I VBA bruges looping, når du skal udføre den samme opgave flere gange, indtil en betingelse er opfyldt (eller indtil en betingelse er sand).

I denne vejledning lærer du, hvordan du bruger For Next Loop i Excel VBA.

Hvis du er interesseret i at lære VBA på den nemme måde, så tjek min Online Excel VBA -træning.

Brug af FOR NEXT Loop i Excel VBA

‘For Next’ Loop fungerer ved at køre loop det angivne antal gange.

For eksempel, hvis jeg beder dig om at tilføje heltalene fra 1 til 10 manuelt, vil du tilføje de to første tal, derefter tilføje det tredje tal til resultatet og derefter tilføje det fjerde tal til resultatet, som så videre …

Er det ikke?

Den samme logik bruges i For Next -løkken i VBA.

Du angiver, hvor mange gange du vil have løkken til at køre, og angiver også, hvad du vil have koden til at gøre hver gang løkken køres.

Her er formatet For Næste sløjfe, du skal bruge i VBA for at tilføje de første 10 hele tal.

For i = 1 til 10 [tilføj det ith positive heltal til resultatet] Næste i

Lad os nu se på et par eksempler på, hvordan du bruger For Next -løkken.

Eksempel 1: Tilføjelse af de første 10 positive heltal

Nedenfor er koden, der tilføjer de første 10 positive heltal ved hjælp af en For Next loop. Det vil derefter vise en meddelelsesboks, der viser summen af ​​disse tal.

Sub AddNumbers () Dim Total As Integer Dim Count As Integer Total = 0 For Count = 1 To 10 Total = Total + Count Next Count MsgBox Total End Sub

I denne kode er værdien af ​​Total sat til 0, før du går ind i For Næste loop.

Når den kommer ind i sløjfen, holder den den samlede værdi efter hver sløjfe. Så efter den første sløjfe, når tælleren er 1, bliver 'Total' -værdien 1, og efter den anden sløjfe bliver den til 3 (1+2) osv.

Og endelig, når sløjfen slutter, og når Total har summen af ​​de første 10 positive heltal, viser en MsgBox ganske enkelt resultatet i en meddelelsesboks.

Klik her for at downloade eksempelfilen

Eksempel 2: Tilføjelse af de første 5 lige positive heltal

For at opsummere de første fem lige positive heltal (dvs. 2,4,6,8 og 10) har du brug for en lignende kode med en betingelse for kun at betragte lige numre og ignorere de ulige tal.

Her er en kode, der gør det:

Sub AddEvenNumbers () Dim Total As Integer Dim Count As Integer Total = 0 For Count = 2 To 10 Step 2 Total = Total + Count Next Count MsgBox Total End Sub

Bemærk, at vi startede Count -værdien fra 2 og også brugte trin 2 i For -syntaksen.

Trin 2 ville fortælle koden at øge 'Count' -værdien med 2 hver gang sløjfen køres. Så Count -værdien starter fra 2 og bliver derefter 4, 6, 8 og 10, når loopingen opstår.

BEMÆRK: En anden måde at gøre dette på kan være at køre løkken fra 1 til 10 og inden for sløjfen kontrollere, om tallet er lige eller ulige. Imidlertid er brug af Step i dette tilfælde en mere effektiv måde, da det ikke kræver, at loopet kører 10 gange, men kun 5 gange.

Klik her for at downloade eksempelfilen.

Eksempel 3: Hent den numeriske del fra en alfanumerisk streng

'For Næste' loop kan også bruges til at gå gennem hvert tegn i en streng.

Hvis du f.eks. Har en liste over alfanumeriske strenge, kan du bruge For Next -sløjfen til at udtrække tallene fra den (som vist nedenfor):

Her er en kode, der opretter en brugerdefineret funktion i VBA, der kan bruges som enhver anden regnearksfunktion.

Det udtrækker den numeriske del fra den alfanumeriske streng.

Funktion GETNUMERIC (Cl As Range) Dim i As Integer Dim Result as Long For i = 1 To Len (Cl) If IsNumeric (Mid (Cl, i, 1)) Then Result = Result & Mid (Cl, i, 1) End If Next i GetNumeric = Resultatafslutningsfunktion

I denne kode er antallet af gange, løkken køres, afhængig af længden af ​​den alfanumeriske streng (den bruger LEN -funktionen til at finde strengens længde).

Du skal sætte denne funktion i modulkodevinduet, og derefter kan du bruge den som enhver anden regnearksfunktion.

Klik her for at downloade eksempelfilen.

Eksempel 4: Få tilfældige tal i det valgte område

Antag, at du hurtigt vil indtaste tilfældige tal i de valgte celler, her koden, der vil gøre det.

Sub RandomNumbers () Dim MyRange As Range Dim i As Integer, j As Integer Set MyRange = Selection For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells (j, i) = Rnd Næste j Næste i Afslut Sub

Dette er et eksempel på indlejret For Næste loop, hvor en For loop bruges i en For Loop.

Antag, at du vælger 10 rækker og 4 kolonner, værdien af ​​i varierer fra 1 til 4 og værdien af ​​j varierer fra 1 til 10.

Når den første For -loop køres, er værdien af ​​i 1. Den flytter derefter til den anden For -loop, der kører 10 gange (for hver række).

Når den anden For loop er blevet udført 10 gange, går den tilbage til den første For loop, hvor nu værdien af ​​i bliver 2. Igen kører den næste For loop 10 gange.

Sådan fungerer den indlejrede For Next -sløjfe.

Klik her for at downloade eksempelfilen.

Du kan også lide følgende Excel VBA -vejledninger:

  • Arbejde med celler og områder i Excel VBA.
  • Arbejde med regneark i Excel VBA.
  • Arbejde med projektmapper ved hjælp af VBA.
  • Brug af IF Then Else Statements i VBA.
  • Excel VBA Select Case.
  • Oprettelse af en brugerdefineret funktion i Excel.
  • Excel VBA Events - En nem (og komplet) vejledning
  • Sådan optages en makro i Excel.
  • Sådan køres en makro i Excel.
  • Sådan opretter du et tilføjelsesprogram i Excel.
  • Sådan gemmes og genbruges makro ved hjælp af Excel Personal Macro Workbook.
  • Nyttige Excel -makroeksempler for begyndere.
  • Brug af InStr -funktion i VBA.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave