Excel VBA Loop - Enkla Excel -makron

Innehållsförteckning

Single Loop | Dubbel slinga | Triple Loop | Gör medan loop

Looping är en av de mest kraftfulla programmeringsteknikerna. A slinga i Excel VBA gör att du kan bläddra igenom ett cellområde med bara några koderader.

Single Loop

Du kan använda en enda slinga för att gå igenom ett endimensionellt cellintervall.

Placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

Dim i As Integer
För i = 1 till 6
Celler (i, 1). Värde = 100
Nästa i

Resultat när du klickar på kommandoknappen på arket:

Förklaring: Kodraderna mellan For och Next kommer att köras sex gånger. För i = 1 anger Excel VBA värdet 100 i cellen i skärningspunkten mellan rad 1 och kolumn 1. När Excel VBA når Nästa i, ökar det i med 1 och hoppar tillbaka till For -satsen. För i = 2 anger Excel VBA värdet 100 i cellen vid skärningspunkten mellan rad 2 och kolumn 1, etc.

Obs: det är bra att alltid dra in (flik) koden mellan orden För och Nästa. Detta gör din kod lättare att läsa.

Dubbel slinga

Du kan använda en dubbel slinga för att gå igenom ett tvådimensionellt cellintervall.

Placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

Dim i As Integer, j As Integer
För i = 1 till 6
För j = 1 till 2
Celler (i, j). Värde = 100
Nästa j
Nästa i

Resultat när du klickar på kommandoknappen på arket:

Förklaring: För i = 1 och j = 1 anger Excel VBA värdet 100 i cellen vid skärningspunkten mellan rad 1 och kolumn 1. När Excel VBA når Nästa j, ökar det j med 1 och hoppar tillbaka till For j -satsen . För i = 1 och j = 2 anger Excel VBA värdet 100 i cellen vid skärningspunkten mellan rad 1 och kolumn 2. Därefter ignorerar Excel VBA Nästa j eftersom j bara går från 1 till 2. När Excel VBA når Nästa i , det ökar i med 1 och hoppar tillbaka till For i -satsen. För i = 2 och j = 1 anger Excel VBA värdet 100 i cellen vid skärningspunkten mellan rad 2 och kolumn 1, etc.

Triple Loop

Du kan använda en trippel loop för att gå igenom tvådimensionella intervall i flera Excel-kalkylblad.

Placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

Dim c Som heltal, i Som heltal, j Som heltal
För c = 1 till 3
För i = 1 till 6
För j = 1 till 2
Arbetsblad (c). Celler (i, j) .Värde = 100
Nästa j
Nästa i
Nästa c

Förklaring: Den enda ändringen som gjorts jämfört med koden för den dubbla slingan är att vi har lagt till en slinga till och lagt till kalkylblad (c). framför celler för att få det tvådimensionella intervallet på det första arket för c = 1, det andra arket för c = 2 och det tredje arket för c = 3. Ladda ner Excel-filen för att se detta resultat.

Gör medan loop

Förutom For Next -slingan finns det andra loopar i Excel VBA. Till exempel Do While Loop. Kod placerad mellan Do While och Loop kommer att upprepas så länge delen efter Do While är sann.

1. Lägg en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

Dim i As Integer
jag = 1
Gör medan jag <6
Celler (i, 1). Värde = 20
i = i + 1
Slinga

Resultat när du klickar på kommandoknappen på arket:

Förklaring: så länge som i är lägre än 6, anger Excel VBA värdet 20 i cellen vid skärningspunkten mellan rad i och kolumn 1 och ökar i med 1. I Excel VBA (och i andra programmeringsspråk), symbolen '= 'betyder blir. Det betyder inte lika. Så i = i + 1 betyder att jag blir i + 1. Med andra ord: ta nuvärdet av i och lägg till 1 till det. Om till exempel i = 1 blir i 1 + 1 = 2. Som ett resultat placeras värdet 20 i kolumn A fem gånger (inte sex eftersom Excel VBA stannar när i är lika med 6).

2. Ange några nummer i kolumn A.

3. Lägg en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

Dim i As Integer
jag = 1
Gör medan celler (i, 1) .Värde ""
Celler (i, 2) .Värde = Celler (i, 1) .Värde + 10
i = i + 1
Slinga

Resultat när du klickar på kommandoknappen på arket:

Förklaring: så länge celler (i, 1) .Värdet inte är tomt (betyder inte lika med) anger Excel VBA värdet i cellen vid skärningspunkten mellan rad i och kolumn 2, det är 10 högre än värdet i cell i skärningspunkten mellan rad i och kolumn 1. Excel VBA stannar när i är lika med 7 eftersom celler (7, 1) .Värdet är tomt. Detta är ett bra sätt att gå igenom valfritt antal rader i ett kalkylblad.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave