Excel VBA for hver sløjfe

"Hvert" nøgleord bruges i VBA sammen med "For" funktion. Det betyder, at for hver enhed i en matrix eller området gentages processen i for loop. Grundlæggende indlæser vi ikke trinområdet, dvs. fra 1 til 5 eller 1 til 10, i stedet for sætter vi det bare som vist i syntaxen nedenfor.

Syntaks:

For hvert objektnavn In Range

Bemærk: Du skal have fanen Udvikler i excel-regnearket.

Hvis du ikke kan se fanen "Udvikler" i Excel, skal du se nedenstående trin.

Trin 1: Klik på File Option.

Trin 2: Drop-down vises, klik på fanen Indstillinger .

Trin 3: Når du klikker på “Indstillinger”, vises en dialogboks som vist nedenfor og klikker på indstillingen Tilpas bånd .

Trin 4: Når vi trækker ned i tilpasningsbåndindstillingerne, finder vi en mulighed for Udvikler, vi har brug for at markere det felt, der gør det muligt for os at bruge VBA i Excel.

Sådan bruges til hver sløjfe i VBA?

Nedenfor er de forskellige eksempler, der skal bruges til hver enkelt loop i Excel ved hjælp af VBA-kode.

Du kan downloade denne VBA for hver Loop Excel-skabelon her - VBA For hver Loop Excel-skabelon

Excel VBA for hver sløjfe - eksempel # 1

Vi tager et simpelt eksempel på For Every Loop i VBA. Antag, at nedenunder er datasættet i VBA.

Følg nedenstående trin for at bruge For hver sløjfe i Excel VBA.

Trin 1: Klik på fanen "Udvikler", og klik derefter på "Visual Basic" indstillingen i venstre side (første mulighed) som vist nedenfor.

Når du klikker på det, vises et nyt vindue som vist nedenfor.

Du vil bemærke, at den indeholder to faner i venstre side, “Ark1 (ark1)” og “Denne arbejdsbog”. Den eneste forskel er “Sheet1”, når du kun vil udføre kode for dette særlige ark, og i “ThisWorkbook” kan vi skrive en kode og udføre, som kan anvendes til hele Excel-projektmappen.

Trin 2: Dobbeltklik på “Sheet1 (Sheet1), og du vil se en tom skærm, hvor vi skal skrive koden. Giv et navn til den oprettede delmængde. Her har vi givet navn som “Sub For_Each_Ex1 ()” som vist på nedenstående skærmbillede.

Kode:

 Sub For_Each_Ex1 () End Sub 

Dette er den måde, vi opretter et undersæt på, og automatisk vises "End Sub". Dette er som standard funktionen Excel. Hvis “End Sub” ikke vises, kører koden ikke og kaster en fejl.

Trin 3: Vi erklærer variablerne som et interval.

Kode:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range End Sub 

Her har vi erklæret to variabler, “Tjen”, som vi vil bruge med For hver og “Område1” som interval for datasættet.

Trin 4: Nu skal vi fastsætte et interval, dvs. en række data, som vi har brug for at arbejde på ved hjælp af nøgleordet "Sæt" som vist nedenfor.

Kode:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") End Sub 

Her fikserede vi "Range1" som fra rækkecellerne A1 til A10, hvilket er vores datasæt.

Trin 5: Vi skal nu udføre For loop ved hjælp af hvert nøgleord.

Kode:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") For hver tjent inden for Range1 End Sub 

For hver værdi i Range får Earn en værdi, der er tildelt som For loop bliver udført trin for trin.

Trin 6: Nu skal vi bruge "Msgbox" nøgleordet til at vise hver linjeindgang i det tildelte interval.

Kode:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") For hver Earn In Range1 MsgBox Earn.Value End Sub 

Her viser "Earn.value" værdien i cellen, dvs. startende fra den første celle i området.

Trin 7: Nu vil vi udføre den næste værdi i det givne celleområde, og derfor skal vi bruge "Næste" nøgleord i koden. Dette vil hjælpe med at gå videre i området og vise hver enhed i celleområdet én efter én.

Kode:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") For hver Earn In Range1 MsgBox Earn.Value Næste Earn End Sub 

Trin 8: Kør koden ved at trykke på F5 eller Run-knappen og se output.

I det øjeblik, kodelinjen “Next Earn” udføres, tildeles “Earn.value” den næste celleværdi i området. Klik på ”OK” med et klik og fortsætter med at vise hver værdi i området, indtil værdiområdet er færdig.

Excel VBA for hver sløjfe - eksempel # 2

Vi tager et andet eksempel, hvor vi viser navnet på hvert ark i en excel-fil. Lad os antage, at vi har ark, der er navngivet som nedenfor i excel-fil:

Da vi bemærker, at der er omkring 5 ark i excel-filen, og vi er nødt til at vise navnet på hver enkelt efter en.

Vi skriver og udfører koden i afsnittet “Denne arbejdsbog” som fremhævet i den røde boks nedenfor:

Dobbeltklik på det, og mens vinduesruden vises, og start med at skrive koden i den. Følg nedenstående trin for at bruge For hver sløjfe i Excel VBA:

Trin 1: Vi skriver koden ved at tildele et undergruppenavn som vist nedenfor.

Kode:

 Subpagename () End Sub 

Trin 2: Vi kan også direkte begynde at skrive “For” loop-sætningen uden at erklære variablen som vist nedenfor.

Kode:

 Subpagename () For hver sht I Application.Sheets End Sub 

Her er "sht" vores variabel1, som som standard bliver erklæret, og "Application.sheets" betyder, at i filen skal du overveje alle arkene. Application.fucntion specificerer, at vi kan tilføje enhver funktion eller funktion eller excel-værktøj, der skal overvejes, mens koden udføres.

Trin 3: Nu indtaster vi syntaxen i meddelelsesfeltet, og sammen med den tilføjer vi syntaks til visning af arknavnet som vist nedenfor:

Kode:

 Subpagename () For hver sht i Application.Sheets MsgBox "Arknavnet er:" & sht.Name End Sub 

Her er udsagnet, som vi gerne vil vise, "Arknavnet er:" og derefter skriver vi en ampersand (&), som sammenkæder kodelinjen, og derefter skriver vi "sht.Name", dvs. det vil vælge det ark, der starter fra den første ark og vis navnet.

Trin 4: Nu skal vi gentage processen til visning af hvert arknavn. Derfor ville vi bruge "Next sht" som vist nedenfor:

Kode:

 Subpagename () For hver sht i Application.Sheets MsgBox "Arknavnet er:" & sht.Name Næste sht End Sub 

"Next sht" vil lade systemet vide det, overveje næste ark og vise dets navn til videre udførelse.

Trin 6: Kør koden ved at trykke på F5 eller Run-knappen og se output.

Når du en gang klikker på "OK", og koden udføres yderligere, vises den næste arknavn. Koden udføres, indtil der ikke er yderligere ark på display.

Excel VBA for hver sløjfe - eksempel # 3

Vi vil nu tage et eksempel, hvor vi skal opsummere alle værdierne i et givet datasæt eller en matrix. Antag, at nedenunder er datasættet:.

Følg nedenstående trin for at bruge For hver sløjfe i Excel VBA:

Trin 1: Angiv først delmængdenavnet som "eachadd ()" som vist nedenfor.

Kode:

 Sub eachadd () End Sub 

Trin 2: Nu skal vi erklære de nødvendige variabler, et som heltal kaldet "total", hvor vi fortsat opsummerer celleværdierne en efter en og fikserer et område af celler, der indeholder værdier, vi har brug for at tilføje.

Kode:

 Sub eachadd () Dim total Som heltal Dim Range1 Som Range End Sub 

Trin 3: Efter at vi har erklæret variabel og rækkevidde, er vi nødt til at fastsætte det interval, der skal bruges til loop. Vi fixer dette interval fra A1 til A10 celler ved hjælp af nøgleordet "Sæt" som vist nedenfor:

Kode:

 Sub eachadd () Dim total Som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") End Sub 

Trin 4: Vi kan nu starte direkte med funktionen For loop og erklære variablen direkte. Her bruger vi “add1” som variabel, og det vil som standard blive erklæret af systemet.

Kode:

 Sub eachadd () Dim total Som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") For hvert tilføj1 In Range1 End Sub 

Trin 5: Tilføje hver enhed i området en efter en og i den variabel, der er erklæret "total". Som standard er værdien af ​​“alt” oprindeligt nul. Og vi er nødt til at tilføje en efter én værdi af celler, og igen skal denne sum tilføje "total" igen.

Kode:

 Sub eachadd () Dim total Som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") For hvert add1 In Range1 total = total + add1.Value End Sub 

Ovenstående udsagn udføres fra højre til venstre, dvs. "add1.value" er den første celleværdi og tilføj den til "total", som er nul. Derfor ville summen være 0 + 1, som er 1. Og summen som 1 ville gå i “total” før “=” -tegnet. Dette er en fordel, da formlen udføres fra venstre mod højre.

Trin 6: Tilføj nu "Next add1", som nu vil hjælpe med at overveje den næste celleværdi af dataområdet og tilføje den værdi i variablen "total" som vist nedenfor.

Kode:

 Sub eachdd () Dim total Som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") For hvert add1 In Range1 total = total + add1.Value Next add1 End Sub 

Trin 6: Tryk på “F8” for at køre koden efter hver linje. Vi kan også se værdien af ​​"alt" i skærmbilledet nedenfor.

Tilsvarende, indtil celleområdet går over, for loop fortsætter med at udføre denne sum af en matrix.

Trin 7: Nu bruger vi "Msgbox" nøgleord.

Kode:

 Sub eachdd () Dim total Som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") For hvert add1 In Range1 total = total + add1.Value Next add1 MsgBox "Final Summation:" & total End Sub 

Trin 8: Kør koden ved at trykke på F5 eller Run-knappen og se output.

Ting at huske

  • "Hvert" nøgleord bruges kun de fleste af tidspunkterne i tilfælde af kun brug af VBA For Loop-funktion. Ellers har det begrænset brug i Excel VBA.
  • Fordelen ved "Hver" nøgleord er kun, at vi ikke har erklæret trin som fra 1 til x i "For" -sætningen.

Anbefalede artikler

Dette er en guide til VBA For hver sløjfe. Her diskuterer vi, hvordan man bruger For hver sløjfe i Excel ved hjælp af VBA-kode sammen med praktiske eksempler og downloadbar excel-skabelon. Herunder er nogle nyttige excel-artikler relateret til VBA -

  1. VBA gør mens sløjfe
  2. Skift af kolonner i Excel
  3. VBA Break for Loop
  4. Tæl navne i Excel
  5. Sådan køres VBA-koden?

Kategori: