Hur man använder For-Next-looparna i Excel 2016 VBA

Den enklaste typen av loop i Excel VBA-programmering är en For-Next loop. Slingan styrs av en räknarvariabel, som börjar vid ett värde och stannar vid ett annat värde. Påståendena mellan For-satsen och Next-satsen är de påståenden som upprepas i slingan.

Ett For-Next exempel

Följande exempel använder en For-Next-loop för att summera de första 1 000 positiva talen. Variabeln Total börjar som noll. Sedan uppstår loopingen. Variabeln Cnt är loopräknaren. Den börjar som 1 och ökas med 1 varje gång genom slingan. Slingan slutar när Cnt är 1 000.

Det här exemplet har bara ett uttalande i loopen. Detta uttalande lägger till värdet av Cnt till variabeln Total. När slingan är klar visar en MsgBox summan av siffrorna.

Sub AddNumbers()
  Dim totalt som dubbel
  Dim Cnt As Long
  Totalt = 0
  För Cnt = 1 till 1000
    Totalt = Totalt + Cnt
  Nästa Cnt
  MsgBox Totalt
Avsluta Sub

Eftersom loopräknaren är en normal variabel kan du skriva kod för att ändra dess värde inom kodblocket mellan For- och Next-satserna. Detta är dock en mycket dålig praxis.

För-nästa exempel med ett steg

Du kan använda ett stegvärde för att hoppa över några räknarvärden i en For-Next-loop. Här är det föregående exemplet, omskrivet för att bara summera de udda talen mellan 1 och 1 000:

Sub AddOddNumbers()
  Dim totalt som dubbel
  Dim Cnt As Long
  Totalt = 0
  För Cnt = 1 till 1000 Steg 2
    Totalt = Totalt + Cnt
  Nästa Cnt
  MsgBox Totalt
Avsluta Sub

Den här gången börjar Cnt som 1 och får sedan värden på 3, 5, 7 och så vidare. Stegvärdet bestämmer hur räknaren inkrementeras. Observera att det övre slingvärdet (1000) faktiskt inte används eftersom det högsta värdet på Cnt kommer att vara 999.

Här är ett annat exempel som använder stegvärdet 3. Den här proceduren fungerar med det aktiva arket och tillämpar ljusgrå nyanser på var tredje rad, från rad 1 till rad 100.

Sub ShadeEveryThird Row()
  Dim i As Long
  För i = 1 till 100 Steg 3
    Rader(i).Interior.Color = RGB(200, 200, 200)
  Nästa i
Avsluta Sub

Kolla in resultatet av att köra detta makro.

Hur man använder For-Next-looparna i Excel 2016 VBA

Använda en slinga för att tillämpa bakgrundsskuggning på rader.

Ett For-Next-exempel med en Exit For-sats

En For-Next-loop kan också inkludera en eller flera Exit For-satser inom loopen. När VBA stöter på detta uttalande, avslutas loopen omedelbart.

Följande exempel visar Exit For-satsen. Denna rutin är en funktionsprocedur, avsedd att användas i en kalkylbladsformel. Funktionen accepterar ett argument (en variabel som heter Str) och returnerar tecknen till vänster om den första numeriska siffran. Till exempel, om argumentet är "KBR98Z" returnerar funktionen "KBR."

Funktion TextPart(Str)
  Dim i As Long
  TextPart = ""
  För i = 1 Till Len(Str)
    Om IsNumeric(Mid(Str, i, 1)) Då
      Avsluta för
    Annan
      TextPart = TextPart & Mid(Str, i, 1)
    Avsluta om
  Nästa i
Avsluta funktion

For-Next-slingan börjar med 1 och slutar med siffran som representerar antalet tecken i strängen. Koden använder VBA:s Mid-funktion för att extrahera ett enda tecken i slingan. Om ett numeriskt tecken hittas exekveras Exit For-satsen och loopen slutar för tidigt.

Om tecknet inte är numeriskt läggs det till det returnerade värdet (vilket är samma som funktionens namn). Den enda gången loopen kommer att undersöka varje tecken är om strängen passerade eftersom argumentet inte innehåller några numeriska tecken.

Ett kapslat For-Next-exempel

Du kan ha valfritt antal påståenden i loopen och kapsla For-Next-loopar inuti andra For-Next-loopar.

Följande exempel använder en kapslad For-Next-slinga för att infoga slumpmässiga tal i ett cellintervall med 12 rader för 5 kolumner. Lägg märke till att rutinen exekverar den inre slingan (loopen med radräknaren) en gång för varje iteration av den yttre slingan (loopen med Col-räknaren). Med andra ord, rutinen exekverar satsen Cells(Row, Col) = Rnd 60 gånger.

Hur man använder For-Next-looparna i Excel 2016 VBA

Dessa celler fylldes med hjälp av en kapslad For-Next-loop.

Sub FillRange()
  Dim Col As Long
  Dim rad så lång
  För kol = 1 till 5
    För rad = 1 till 12
      Celler (rad, kol) = Rnd
    Nästa rad
  Nästa Col
Avsluta Sub

Nästa exempel använder kapslade For-Next-loopar för att initiera en tredimensionell array med värdet 100. Denna rutin exekverar satsen mitt i alla slingor (tilldelningssatsen) 1 000 gånger (10 * 10 * 10), varje gång med en annan kombination av värden för i, j och k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  För i = 1 till 10
    För j = 1 till 10
      För k = 1 till 10
        MyArray(i, j, k) = 100
    Nästa k
  Nästa j
Nästa i
  ' Andra uttalanden går här
Avsluta Sub

Här är ett sista exempel som använder kapslade For-Next-loopar, med ett stegvärde. Denna procedur skapar ett schackbräde genom att ändra bakgrundsfärgen för alternerande celler.

Hur man använder For-Next-looparna i Excel 2016 VBA

Använda öglor för att skapa ett rutmönster.

Radräknaren går från 1 till 8. En If-Then-konstruktion avgör vilken kapslad For-Next-struktur som ska användas. För udda rader börjar Col-räknaren med 2. För jämna rader börjar Col-räknaren med 1. Båda slingorna använder ett stegvärde på 2, så alternativa celler påverkas. Ytterligare två påståenden gör cellerna fyrkantiga (precis som ett riktigt schackbräde).

Sub MakeCheckerboard()
  Dim R As Long, C As Long
  För R = 1 till 8
    Om WorksheetFunction.IsOdd(R) Då
     För C = 2 till 8 Steg 2
       Celler (R, C). Interiör. Färg = 255
     Nästa C
    Annan
     För C = 1 till 8 Steg 2
       Celler (R, C). Interiör. Färg = 255
     Nästa C
    Avsluta om
  Nästa R
  Rader(“1:8”). Radhöjd = 35
  Kolumner(“A:H”). Kolumnbredd = 6,5
Avsluta Sub

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]