Løkker og betingede setninger

Du bør først fullføre Mer om IDE før du ser på denne leksjonen

I denne leksjonen vises eksempler på løkker og du får noen øvelser som du kan bruke til å øve på egenhånd.

For loop

De fleste bruker Forloop i VBA. Det er to former for For-loop, For Next og For Each In Next. En For-loop vil gå gjennom en serie eller data i en sekvens. (Du kan bruke Exit-setningen til å avslutte en For-loop når som helst). Løkken vil fortsette å kjøre til sluttbetingelsen er oppfylt. Når den sluttbetingelsen er oppfylt, vil programmet forsette fra neste setning i programmet.

La oss se på syntaksen til loopen:

For … Next har følgende syntaks:

For Teller = Start_Teller To Slutt_Teller

‘ Gjør noe her (koden din)

Next Teller

I koden ovenfor, initialiserer vi variabelen Teller, som vil drive løkken. Denne variabelen vil bli satt til en verdi som er lik Start_Teller, som vil være starten på sløyfen. Variabelen vil øke med 1 inntil den oppfyller sluttbetingelsen som er Slutt_Teller. Sløyfen vil fortsette å kjøre til verdien av Teller er lik verdien av Slutt_Teller, så avsluttes (terminerer) løkken og forsetter med neste instruksjon.

Forklaringen ovenfor kan være litt forvirrende, la oss heller se på noen eksempler som du kan jobbe med for å forstå For-loop bedre. Før du ser på eksemplene, gjør du følgende:

  • Åpne en ny arbeidsbok og lagre den som en xlsm-fil (makroaktivert).
  • Du bestemmer navnet på arbeidsboken selv.
  • Trykk deretter Alt + F11 for å starte Visual Basic Editoren.
  • Sett inn en ny modul (Velg Insert -> Module på menyen)

Eksempel 1

I dette eksemplet vises teksten Ditt startnummer er og verdien av variabelen StartNummer.

Sub Loop1()

Dim StartNummer As Integer

Dim SluttNummer As Integer

Worksheets(“Ark1”).Select

SluttNummer = 5

For StartNummer = 1 To SluttNummer

MsgBox “Ditt startnummer er ” & StartNummer

Next StartNummer

End Sub

Fra VBA-editoren

I koden ovenfor, er variabelene StartNummer og SluttNummer deklarert som Integer (heltall), og StartNummer er starten på løkken. Koden vil starte fra StartNummer som er 1 og ende ved SluttNummer som er 5. Når koden kjøres, vises følgende melding på skjermen når StartNummer har verdien 3.

Eksempel 2

I dette eksemplet skal vi fylle inn verdier i det Ark1.

Sub Loop2()

‘Fyller cellene A1:A10 med verdier av X ved looping

‘Øker verdien av X med 1 i hver løkke

Dim X As Integer

Worksheets(“Ark1”).Select

For X = 1 To 10

Range(“A” & X).Value = X

Next X

End Sub

Fra VBA-editoren

Du vil se følgende data i cellene A1:A10 i arket Ark1 etter at Loop2 er utført.

Eksempel 3

I dette eksempelet vil vi fylle noen celler i Ark1 med en bakgrunnsfarge.

Sub Loop3()

‘Fyller cellene B1:B10 med 10 ulike bakgrunnsfarger

Dim X As Integer

Worksheets(“Ark1”).Select

For X = 1 To 10

Range(“B” & X).Select

With Selection.Interior

.ColorIndex = X

.Pattern = xlSolid

End With

Next X

End Sub

Fra VBA-editoren

Du vil se følgende data i cellene A1:B10 i arket Ark1 etter at Loop2 og Loop3 er utført.

Eksempel 4

Det er viktig å huske at en løkke ikke nødvendigvis må telle fra en lav verdi til en høyere verdi. Du kan bruke For-Loop til å flytte fra høyere verdier til lavere verdier ved hjelp av funksjonen Step. Dette eksempelet viser deg hvordan du kan utføre den samme funksjonen i Ark1.

Sub Loop4()

‘ Fyller celler fra C1:C10 med verdier av X

‘ I dette tilfellet reduseres X med 1

Dim X As Integer, Rad As Integer

Worksheets(“Ark1”).Select

Rad = 1

For X = 10 To 1 Step -1

Range(“C” & Rad).Value = X

Rad = Rad + 1

Next X

End Sub

Fra VBA-editoren

Resultatet i cellene A1:C10 i Ark1 ser du her etter at Loop2, Loop3 og Loop4 er utført.

Øvelser

  1. Skriv et program som fyller verdier i celler i Ark1, bruk en økning på 2 i løkken.
  2. Bruk eksempel 4, skriv et program som fyller verdier i celler i omvendt rekkefølge ved hjelp av Step-funksjonen. Bruk Ark1
  3. Skriv et program som fylle ut verdier i Ark1 fra en bestemt celle.

Klarer du disse øvelsene, er du på god vei til å kunne bruke For Next i ditt programmeringsarbeid.

Forslag til løsninger

Øvelse 1

Sub Loop5()

‘Fyller hver andre celle fra D1:D10 med verdier av X

Dim X As Integer

Worksheets(“Ark1”).Select

For X = 1 To 10 Step 2

Range(“D” & X).Value = X

Next X

End Sub

Øvelse 2

Sub Loop6()

‘Fyller hver andre celle fra E1: E9 med verdier av X

‘I dette tilfellet reduseres X med 2

Dim X As Integer, Row As Integer

Worksheets(“Ark1”).Select

Row = 1

For X = 10 To 1 Step -2

Range(“E” & Row).Value = X

Row = Row + 2

Next X

End Sub

Øvelse 3

Sub Loop7()

‘Fyller cellene F11:F21 med verdier av X

‘Sløyfen terminerer (avsluttes) etter 10 runder

Dim X As Integer

Worksheets(“Ark1”).Select

For X = 10 To 19

Range(“F” & X).Value = X

If X = 19 Then

MsgBox (“Ferdig!”)

‘Bruker Exit For til å avslutte sløyfen

Exit For

End If

Next X

End Sub

Tilbake til:Det Ultimate VBA Kurset Del 2
Meny
Nettstedet er under arbeidI drift i løpet høsten 2019