Løkker
Beskrivelse
Løkker
Der flere metoder til at få programmer til at køre i løkker:
For Variabel = a TO b Kommandoer Next For Each Egenskab IN Objektsamling Kommandoer Next Do Until Betingelse Kommandoer Loop Do While Betingelse Kommandoer Loop Do
Kommandoer
Loop Until Betingelse Do
Kommandoer
Loop While Betingelse Læg mærke til at man kan bryde sådan en Do - Loop med Exit Do:
Do Until Betingelse
Kommendoer
If Betingelse Then Exit Do
Flere kommandoer
Loop
Et (måske lidt kedeligt) eksempel på anvendelse af en løkke kunne se sådan her ud:

Prøv det - det skulle gerne give 5 dialogbokse med tallene 1 til 5.
Det var ét meget simpelt eksempel. Her kommer et par stykker mere (desværre stadig ikke specielt fantasifulde (forslag modtages gerne))
Sub NytForEksempel() Range("A1").Select For i = 1 To 10 ActiveCell.Value = i Activecell.Offset(0,1).Select Next i End Sub
Cells objektet
Når man arbejder med løkker i regnearket kan objektet Cells være nyttigt at kende. Det virker sådan her:
Cells(1,1).Value = "Hej" - skriver Hej i celle A1 Cells(2,3).Value = "Hej igen" - skriver Hej igen i celle C2 Det første tal angiver altså række nummeret og det andet angiver kolonne nummeret.
Bruger vi cells objektet sammen med en for - next løkke kan man sætte lille eksempel sammen
Sub EndnuEtForEksempel() For i = 1 to 5 Cells(i, 1) = "Hej" Next End Sub Bemærk at listen over metoder og egenskaber desværre ikke kommer frem når man trykker. efter Cells(1,1) - man kan bruge alle de samme metoder og egenskaber, som på Range objektet.
Øvelse
Lav et regneark, der hedder "Løkker.xlsm" og skriv følgende makroer i arket
- Prøv de forskellig eksempler ovenfor. Prøv med F8 (som du så under Fejlfinding) at steppe gennem koden for at se, hvordan løkken virker.
- Lav en makro, der gør klar til en tips kupon som vist nedenfor

- Sørg for at de to makroer kan aktiveres fra knapper i regnearket
- Lav også en makro, der rydder op i regnearket (prøv om du kan gøre det med løkker)
Send regnearket til mig.
Løsning
Du kan hente mit forslag til løsningen her.
Min kode ser sådan her ud:
Sub BrugAfFor() For i = 1 To 10 Range("A1").Value = Range("A1").Value + i Next End Sub Sub TipsKupon() Range("A1").Value = "Tipskupon" Range("A1").Font.Bold = True Range("B2").Value = "1" Range("C2").Value = "X" Range("D2").Value = "2" Range("B2:D2").HorizontalAlignment = xlHAlignCenter For i = 1 To 13 Cells(2 + i, 1).Value = i Next End Sub Sub RydOp1() For i = 1 To 4 For j = 1 To 16 Cells(j, i).Clear Next Next End Sub Sub RydOp2() Range("A1:D16").Clear End Sub Jeg har hygget mig lidt med at lave to forskellige versioner af rydop makroen - det skulle være til at gennemskue. Og på utallige opfordringer kommer også lige en snut kode, der udfylder kuponen
Sub UdfyldKupon() Dim i As Integer Dim resultat As Integer For i = 1 To 13 resultat = Int(3 * Rnd) + 1 If resultat = 1 Then Cells(i + 1, 2).Value = 1 ElseIf resultat = 2 Then Cells(i + 1, 3).Value = "X" Else Cells(i + 1, 4).Value = 2 End If Next End Sub Brug for hjælp til VBA, VSTO eller SQL?
Scient Data tilbyder professionel IT-konsulentbistand
Kontakt Scient Data →