7 Exempel på For Loops i Microsoft Excel VBA

Anonim

Om du skriver ett VBA -program och du vill utföra samma uppgift flera gånger kan du göra detta genom att använda VBA för loopar. VBA är ett sekventiellt programmeringsspråk. Varje kodrad körs uppifrån och ner tills det inte finns fler kodrader att läsa. Om du vill gå tillbaka och utföra en uppgift måste du tvinga med makrokod. Du får resultat med loop.

For Loop i VBA är en av de vanligaste slingorna. For -slingan har två former: För nästa och för varje i nästa. For -slingan används vanligtvis för att gå sekventiellt genom en lista med objekt eller nummer. För att avsluta For -slingan vid en given punkt kan vi använda exit -satsen. För Loop kommer att gå runt och runt tills det uppfyller slutvillkoret. När slutvillkoret är uppfyllt fortsätter programmeringsflödet nedåt, i dess naturliga riktning.

For … Next loop har följande syntax: For counter = start_counter To end_counter 'Gör något här (din kod) Nästa räknare 

Vi skapar faktiskt en loop som använder variabel disken som loopens "tidshållare". Vi sätter det till ett värde lika med start_räknare i början av slingan och öka sedan den med 1 under varje slinga tills den uppfyller slutvillkoret. Slingan kommer att köras till dess att värdet på disken blir lika med slut_räknare. Slingan körs för sista gången när båda ovanstående värden matchar och sedan slutar slingan.

Allt ovanstående kan vara förvirrande för vissa människor, så låt oss förbereda oss och börja lära oss For Loop i excel med några exempel.

  • Skapa en ny Excel -arbetsbok och spara den med tillägget .xlsm
  • För att starta Visual Basic -redigeringsskärmen, använd ALT + F11
  • Sätt in ny modul
  • Kopiera koden nedan i VB -standardmodulen

Loop 1 (Visar nummer med msgbox)

Sub Loop1 () Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & "is" & "Your StartNumber" Next StartNumber End Sub 

Kodförklaring:

  • VBA -koden behöver du tilldela värde till StartNumber, där EndNumber är variabler som deklareras som heltal som utgångspunkt för din loop
  • Dessa värden kan vara valfritt tal och vi har EndNumber som 5
  • StartNumber startas vid 1
  • För StartNumber = 1 To EndNumber betyder att koden börjar från 1 (StartNumber) till 5 (EndNumber)
  • MsgBox StartNumber & "is" & "Your StartNumber" visar följande meddelanderuta

Loop2 (fyllningsvärden)

Subslinga2 () 'Fyller cellerna A1: A56 med värdena X genom looping' --- Kommentar 'Öka värdet på X med 1 i varje slinga' --- Kommentar Dim X som heltal för X = 1 till 56 intervall ("A "& X) .Value = X Next X End Sub 

Kodförklaring:

  • Vi har tilldelat X som ett heltal
  • För X = 1 till 56; detta börjar med 1 och fortsätter till 56 med ett steg om 1 varje gång
  • Område ("A" & X). Värde = X; denna rad kommer att lagra värdet på X och passerar till intervallet A1 till A56

Loop3 (Fyll celler med bakgrundsfärg)

Sub Loop3 () 'Fyller celler B1: B56 med 56 bakgrundsfärger' --- Kommentar Dim X som heltal för X = 1 till 56 intervall ("B" & X) .Välj med Selection.Interior .ColorIndex = X .Pattern = xlSolid End med nästa X End Sub 

Kodförklaring:

  • Vi har tilldelat X som ett heltal
  • För X = 1 till 56 börjar med 1 och fortsätter till 56 med ett steg om 1 varje gång
  • Område ("B" & X) .Välj; denna rad kommer att lagra värdet på X och markera cellen B1 till B56
  • De kommande 4 raderna dvs Med Selection.Interior väljer interiörfärgindex och tar värdet från X för den färgindexen så att 1 tillhör färg svart; 2 tillhör färgen vit; 3 för rött och så vidare

Loop 4 (fyllningsvärden med steg om 2)

Som standard är stegvärdet framåt 1, men det kan ställas in på ett tal mer än 1.

Sub Loop4 () 'Fyller varannan cell från C1: C50 med värden på X' --- Kommentar Dim X Som heltal för X = 1 till 50 Steg 2 Område ("C" & X) .Värde = X Nästa X Avsluta sub 

Kodförklaring:

  • Vi har tilldelat X som ett heltal
  • För X = 1 till 50 Steg 2; detta börjar med 1 i X till 50 med ett steg om 2 varje gång
  • Område ("C" & X). Värde = X; denna rad kommer att lagra värdet på X och passerar till intervallet C1 till C50

Loop 5 (VBA för loop i back med STEP -instruktion)

Det är inte nödvändigt att räknaren i For -slingan bara flyttas från låga till högre värden; I stället kan For loop gå bakåt, för högt till lägre värden.

Även om stegvärdet är framåt 1 som standard kan det dock ställas in på ett tal i omvänd ordning.

Subslinga5 () 'Fyller celler från D1: D50 med värdena X' --- Kommentar 'I detta fall minskar X med 1' --- Kommentar Dim X som heltal, rad som heltal rad = 1 för X = 50 till 0 Steg -1 Område ("D" och rad) .Värde = X rad = rad + 1 nästa X slut sub 

Kodförklaring:

  • Vi har tilldelat X & Row som heltal
  • Rad innehåller värde 1
  • För X = 50 till 0 Steg -1; detta börjar från 50 med minskning med 1 i X till 0
  • Område ("D" och rad) .Värde = X; denna rad kommer att lagra värdet X och passerar till intervallet D1 till D50

Loop 6 (fyller varannan cell i omvänd med STEP-2)

I exemplet ovan för slinga kan vi använda steget och ordningen för att se om For -slingan fungerar framåt eller bakåt.

Subslinga6 () 'Fyller varannan cell från E1: E100 med värden på X' --- Kommentar 'I detta fall minskar X med 2' --- Kommentar Dim X som heltal, rad som heltal rad = 1 för X = 100 Till 0 Steg -2 Område ("E" & rad) .Värde = X rad = rad + 2 Nästa X Avsluta sub 

Kodförklaring:

  • Vi har tilldelat X & Row som heltal
  • Rad innehåller värde 1
  • För X = 100 till 0 Steg -2; detta börjar från 100 med minskning med 2 i X till 0
  • Område ("E" och rad) .Värde = X; denna rad kommer att lagra värdet på X och passerar till intervallet E1 till E100

Loop 7 (För loop med IF -tillstånd: Fyller celler som börjar från specifik cell)

Detta fyller cellerna från cell F11 med värde 11 tills X uppfyller IF -villkoret

Sub Loop7 () 'Börjar fylla celler F11: F100 med värden på X' --- Kommentar 'Detta kommer att lämna slingan efter 50' --- Kommentar Dim X som heltal för X = 11 till 100 intervall ("F" & X) .Value = X Om X = 50 Då MsgBox ("Bye Bye") Avsluta för slutet Om nästa X End Sub 

Kodförklaring:

  • Vi har tilldelat X som ett heltal
  • För X = 11 till 100; börjar från 11 med steg om 1 i X tills villkoret uppfyller
  • Område ("F" & X). Värde = X; denna rad kommer att lagra värdet X och passerar till område F11 tills villkoret uppfyller

  • Efter att du har angett värdet 50 i cell F50, visas följande meddelanderuta

Slutsats: Med ovanstående 7 exempel kan vi använda For loop i vår vanliga eller någon automatiseringsdel.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen