Sådan bruges For-Next Loops i Excel 2016 VBA

Den enkleste type loop i Excel VBA-programmering er en For-Next loop. Sløjfingen styres af en tællervariabel, som starter ved én værdi og stopper ved en anden værdi. Udsagnene mellem For-sætningen og Next-sætningen er de udsagn, der bliver gentaget i løkken.

Et For-Next eksempel

Følgende eksempel bruger en For-Next-løkke til at summere de første 1.000 positive tal. Variablen Total starter som nul. Så opstår sløjfen. Variablen Cnt er sløjfetælleren. Den starter som 1 og øges med 1 hver gang gennem løkken. Sløjfen slutter, når Cnt er 1.000.

Dette eksempel har kun én sætning inde i løkken. Denne erklæring tilføjer værdien af ​​Cnt til variablen Total. Når løkken er færdig, viser en MsgBox summen af ​​tallene.

Sub AddNumbers()
  Dim Total Som Dobbelt
  Dim Cnt As Long
  I alt = 0
  For Cnt = 1 til 1000
    Total = Total + Cnt
  Næste Cnt
  MsgBox i alt
Slut Sub

Fordi loop-tælleren er en normal variabel, kan du skrive kode for at ændre dens værdi inden for kodeblokken mellem For- og Next-sætningerne. Dette er dog en meget dårlig praksis.

For-Next eksempler med et trin

Du kan bruge en Step-værdi til at springe nogle tællerværdier over i en For-Next-løkke. Her er det forrige eksempel, omskrevet til kun at summere de ulige tal mellem 1 og 1.000:

Sub AddOddNumbers()
  Dim Total Som Dobbelt
  Dim Cnt As Long
  I alt = 0
  For Cnt = 1 til 1000 Trin 2
    Total = Total + Cnt
  Næste Cnt
  MsgBox i alt
Slut Sub

Denne gang starter Cnt som 1 og antager derefter værdier på 3, 5, 7 og så videre. Trinværdien bestemmer, hvordan tælleren øges. Bemærk, at den øvre sløjfeværdi (1000) faktisk ikke bruges, fordi den højeste værdi af Cnt vil være 999.

Her er et andet eksempel, der bruger en trinværdi på 3. Denne procedure fungerer med det aktive ark og anvender lysegrå skygger på hver tredje række, fra række 1 til række 100.

Sub ShadeEveryThird Row()
  Dim i As Long
  For i = 1 til 100 Trin 3
    Rækker(i).Interiør.Farve = RGB(200, 200, 200)
  Næste i
Slut Sub

Tjek resultatet af at køre denne makro.

Sådan bruges For-Next Loops i Excel 2016 VBA

Brug af en løkke til at anvende baggrundsskygge på rækker.

Et For-Next eksempel med en Exit For-erklæring

En For-Next-løkke kan også inkludere en eller flere Exit For-sætninger i løkken. Når VBA støder på denne erklæring, afsluttes løkken med det samme.

Følgende eksempel viser Exit For-sætningen. Denne rutine er en funktionsprocedure, beregnet til at blive brugt i en regnearksformel. Funktionen accepterer ét argument (en variabel ved navn Str) og returnerer tegnene til venstre for det første numeriske ciffer. For eksempel, hvis argumentet er "KBR98Z", returnerer funktionen "KBR."

Funktion TextPart(Str)
  Dim i As Long
  TextPart = ""
  For i = 1 til Len(Str)
    Hvis IsNumeric(Mid(Str, i, 1)) Så
      Afslut for
    Andet
      TextPart = TextPart & Mid(Str, i, 1)
    Afslut Hvis
  Næste i
Afslut funktion

For-Next-løkken starter med 1 og slutter med det tal, der repræsenterer antallet af tegn i strengen. Koden bruger VBA's Mid-funktion til at udtrække et enkelt tegn i løkken. Hvis der findes et numerisk tegn, udføres Exit For-sætningen, og løkken slutter for tidligt.

Hvis tegnet ikke er numerisk, føjes det til den returnerede værdi (som er det samme som funktionens navn). Den eneste gang løkken vil undersøge hvert tegn er, hvis strengen bestået, da argumentet ikke indeholder numeriske tegn.

Et indlejret For-Next eksempel

Du kan have et hvilket som helst antal udsagn i løkken og indlejre For-Next-løkker inde i andre For-Next-løkker.

Følgende eksempel bruger en indlejret For-Next-løkke til at indsætte tilfældige tal i et celleområde på 12 rækker for 5 kolonner. Bemærk, at rutinen udfører den indre løkke (løkken med rækketælleren) én gang for hver iteration af den ydre løkke (løkken med Col-tælleren). Med andre ord udfører rutinen sætningen Cells(Row, Col) = Rnd 60 gange.

Sådan bruges For-Next Loops i Excel 2016 VBA

Disse celler blev fyldt ved at bruge en indlejret For-Next-løkke.

Sub FillRange()
  Dim Col As Long
  Dim række så længe
  For Col = 1 til 5
    For række = 1 til 12
      Celler(Række, Col) = Rnd
    Næste række
  Næste Col
Slut Sub

Det næste eksempel bruger indlejrede For-Next-løkker til at initialisere et tredimensionelt array med værdien 100. Denne rutine udfører sætningen i midten af ​​alle løkkerne (tildelingssætningen) 1.000 gange (10 * 10 * 10), hver gang med en anden kombination af værdier for i, j og k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  For i = 1 til 10
    For j = 1 til 10
      For k = 1 til 10
        MyArray(i, j, k) = 100
    Næste k
  Næste j
Næste i
  ' Andre udtalelser kommer her
Slut Sub

Her er et sidste eksempel, der bruger indlejrede For-Next-løkker med en Step-værdi. Denne procedure opretter et skakbræt ved at ændre baggrundsfarven på skiftende celler.

Sådan bruges For-Next Loops i Excel 2016 VBA

Brug løkker til at skabe et skakternet mønster.

Rækketælleren går fra 1 til 8. En If-Then-konstruktion bestemmer, hvilken indlejret For-Next-struktur, der skal bruges. For rækker med ulige numre begynder Col-tælleren med 2. For lige nummererede rækker begynder Col-tælleren med 1. Begge sløjfer bruger en trinværdi på 2, så alternative celler påvirkes. To yderligere udsagn gør cellerne firkantede (ligesom et rigtigt skakbræt).

Sub MakeCheckerboard()
  Dim R så længe, ​​C så længe
  For R = 1 til 8
    Hvis WorksheetFunction.IsOdd(R) Så
     For C = 2 til 8 Trin 2
       Celler (R, C). Interiør. Farve = 255
     Næste C
    Andet
     For C = 1 til 8 Trin 2
       Celler (R, C). Interiør. Farve = 255
     Næste C
    Afslut Hvis
  Næste R
  Rækker(“1:8”). Rækkehøjde = 35
  Kolonne(“A:H”). Kolonnebredde = 6,5
Slut Sub

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]