For Next Loop i Excel VBA - En nybegynnerguide med eksempler

I VBA brukes looping når du må utføre den samme oppgaven flere ganger til en betingelse er oppfylt (eller til en betingelse er sann).

I denne opplæringen lærer du hvordan du bruker For Next Loop i Excel VBA.

Hvis du er interessert i å lære VBA på den enkle måten, sjekk min Online Excel VBA -opplæring.

Bruker FOR NEXT Loop i Excel VBA

'For Next' Loop fungerer ved å kjøre sløyfen det angitte antallet ganger.

For eksempel, hvis jeg ber deg legge til heltallene fra 1 til 10 manuelt, vil du legge til de to første tallene, deretter legge det tredje tallet til resultatet, og deretter legge det fjerde tallet til resultatet, som så videre …

Er det ikke?

Den samme logikken brukes i For Next -løkken i VBA.

Du angir hvor mange ganger du vil at løkken skal kjøres, og du angir også hva du vil at koden skal gjøre hver gang løkken kjøres.

Her er For Next loop -formatet du må bruke i VBA for å legge til de første 10 hele tallene.

For i = 1 til 10 [legg til det ith positive heltallet i resultatet] Neste i

La oss nå se på noen eksempler på hvordan du bruker For Next -løkken.

Eksempel 1: Legge til de første 10 positive heltalene

Nedenfor er koden som vil legge til de første 10 positive heltallene ved hjelp av en For Next -løkke. Det vil da vise en meldingsboks som viser summen av disse tallene.

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 koden er verdien av Total satt til 0 før du går inn i For neste sløyfe.

Når den kommer inn i løkken, holder den den totale verdien etter hver sløyfe. Så etter den første sløyfen, når telleren er 1, blir ‘Total’ -verdien 1, og etter den andre sløyfen blir den 3 (1+2), og så videre.

Og til slutt, når løkken ender og når Total har summen av de første 10 positive heltallene, viser en MsgBox ganske enkelt resultatet i en meldingsboks.

Klikk her for å laste ned eksempelfilen

Eksempel 2: Legge til de første 5 jevne positive heltalene

For å oppsummere de fem til og med positive heltallene (dvs. 2,4,6,8 og 10), trenger du en lignende kode med en betingelse for å bare vurdere partallene og ignorere oddetallene.

Her er en kode som gjø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

Vær oppmerksom på at vi startet Count -verdien fra 2 og også brukte trinn 2 i For -syntaksen.

Trinn 2 vil fortelle koden om å øke 'Count' -verdien med 2 hver gang løkken kjøres. Så Count -verdien starter fra 2 og blir deretter 4, 6, 8 og 10 når loopingen oppstår.

MERK: En annen måte å gjøre dette på kan være å kjøre løkken fra 1 til 10 og i sløyfen sjekke om tallet er partall eller oddetall. Imidlertid er bruk av Step i dette tilfellet en mer effektiv måte, ettersom det ikke krever at løkken skal kjøres 10 ganger, men bare 5 ganger.

Klikk her for å laste ned eksempelfilen.

Eksempel 3: Få den numeriske delen fra en alfanumerisk streng

'For Next' loop kan også brukes til å gå gjennom hvert tegn i en streng.

For eksempel, hvis du har en liste over alfanumeriske strenger, kan du bruke For Next -løkken til å trekke ut tallene fra den (som vist nedenfor):

Her er en kode som lager en egendefinert funksjon i VBA som kan brukes som alle andre regnearkfunksjoner.

Den trekker ut den numeriske delen fra den alfanumeriske strengen.

Funksjon 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 = Resultatsluttfunksjon

I denne koden er antall ganger sløyfen kjøres avhengig av lengden på den alfanumeriske strengen (den bruker LEN -funksjonen til å finne lengden på strengen).

Du må sette denne funksjonen i modulkodevinduet, og deretter kan du bruke den som alle andre regnearkfunksjoner.

Klikk her for å laste ned eksempelfilen.

Eksempel 4: Få tilfeldige tall i det valgte området

Anta at du raskt vil angi tilfeldige tall i de valgte cellene, her er koden som vil gjø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 Neste j Neste i Avslutt Sub

Dette er et eksempel på nestet For Next loop hvor en For loop brukes i en For Loop.

Anta at du velger 10 rader og 4 kolonner, verdien på i varierer fra 1 til 4 og verdien av j varierer fra 1 til 10.

Når den første For -løkken kjøres, er verdien av i 1. Den flyttes deretter til den andre For -løkken som går 10 ganger (for hver rad).

Når den andre For -sløyfen har blitt utført 10 ganger, går den tilbake til den første For -løkken hvor nå verdien av i blir 2. Igjen går den neste For -løkken 10 ganger.

Slik fungerer den nestede For Next -løkken.

Klikk her for å laste ned eksempelfilen.

Du kan også like følgende Excel VBA -opplæringsprogrammer:

  • Arbeider med celler og områder i Excel VBA.
  • Arbeider med regneark i Excel VBA.
  • Arbeide med arbeidsbøker ved hjelp av VBA.
  • Bruke IF Then Else Statements i VBA.
  • Excel VBA Select Case.
  • Opprette en brukerdefinert funksjon i Excel.
  • Excel VBA Events - En enkel (og komplett) guide
  • Slik spiller du inn en makro i Excel.
  • Hvordan kjøre en makro i Excel.
  • Hvordan lage et tillegg i Excel.
  • Hvordan lagre og gjenbruke makro ved hjelp av Excel Personal Macro Workbook.
  • Nyttige Excel -makroeksempler for nybegynnere.
  • Bruke InStr -funksjon i VBA.
wave wave wave wave wave