Excel VBA for hver sløyfe

"Hvert" nøkkelord brukes i VBA sammen med "For" -funksjonen. Det betyr at for hver enhet i en matrise eller området gjenta prosessen i for loop. I utgangspunktet vil vi ikke legge inn trinnområdet, dvs. fra 1 til 5 eller 1 til 10, i stedet legger vi det bare som vist i syntaksen nedenfor.

syntaks:

For hvert objektnavn innen rekkevidde

Merk: Du må ha Developer-fanen i Excel-regnearket.

Hvis du ikke ser fanen "Utvikler" i Excel, kan du se trinnene nedenfor.

Trinn 1: Klikk på File Alternativ.

Trinn 2: Nedtrekksvindu vises. Klikk på Alternativer- fanen.

Trinn 3: Når du har klikket på “Alternativer”, vises en dialogboks som vist nedenfor og klikker på Tilpass bånd- alternativet.

Trinn 4: Når vi drar ned tilpasse båndalternativene, finner vi et alternativ for Developer, vi må merke av i den ruten som gjør at vi kan bruke VBA i Excel.

Hvordan bruke for hver sløyfe i VBA?

Nedenfor er de forskjellige eksemplene du vil bruke For Hver sløyfe i Excel ved å bruke VBA-kode.

Du kan laste ned denne VBA for hver Loop Excel-mal her - VBA For hver Loop Excel-mal

Excel VBA for hver sløyfe - eksempel # 1

Vi skal ta et enkelt eksempel på For Every Loop i VBA. Anta at nedenfor er datasettet i VBA.

Følg trinnene nedenfor for å bruke For Every Loop i Excel VBA.

Trinn 1: Klikk på "Utvikler" -fanen og klikk deretter på "Visual Basic" -alternativet på venstre side (første alternativ) som vist nedenfor.

Når du har klikket på det, vises et nytt vindu som vist nedenfor.

Du vil merke at den inneholder to faner på venstre side, “Ark1 (ark1)” og “Denne arbeidsboken”. Den eneste forskjellen er “Sheet1” når du bare vil utføre kode for dette bestemte arket, og i “ThisWorkbook” kan vi skrive en kode og utføre som kan brukes på hele Excel-arbeidsboka.

Trinn 2: Dobbeltklikk på “Sheet1 (Sheet1), så ser du et blankt skjermbilde der vi trenger å skrive koden. Gi et navn til delsettet som er opprettet. Her har vi gitt navn som "Sub For_Each_Ex1 ()" som vist på skjermbildet nedenfor.

Kode:

 Sub For_Each_Ex1 () Slutt Sub 

Dette er måten vi oppretter et undersett og automatisk vises "End Sub". Dette er som standard funksjon i Excel. Hvis "End Sub" ikke vises, vil ikke koden utføre og kaste en feil.

Trinn 3: Vi skal erklære variablene som et område.

Kode:

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

Her har vi erklært to variabler, “Tjen” som vi vil bruke med For hver og “Område1” som området for datasettet.

Trinn 4: Nå skal vi fikse et område, dvs. utvalg av data som vi trenger å jobbe med, ved å bruke nøkkelordet "Sett" som vist nedenfor.

Kode:

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

Her fikset vi “Range1” som fra rekkeceller A1 til A10, som er datasettet vårt.

Trinn 5: Vi skal nå utføre For loop ved bruk av hvert nøkkelord.

Kode:

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

Her, for hver verdi i Range, vil Tjene få en verdi tildelt som For loop blir utført trinn for trinn.

Trinn 6: Nå skal vi bruke "Msgbox" nøkkelord for å vise hver linjeoppføring i det tildelte området.

Kode:

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

Her vil “Earn.value” vise verdien i cellen, dvs. starte fra den første cellen i området.

Trinn 7: Nå, vi ønsker å utføre den neste verdien i det angitte celleområdet, og derfor må vi bruke "Neste" nøkkelord i koden. Dette vil bidra til å gå videre i området og vise hver enhet i celleområdet én etter én.

Kode:

 Sub For_Each_Ex1 () Dim Tjent, Range1 Som Range Set Range1 = Range ("A1: A10") For hvert tjent innen Range1 MsgBox Tjent.Value Neste Earn End Sub 

Trinn 8: Kjør koden ved å trykke på F5 eller Run-knappen og se utdataene.

I det øyeblikket kodelinjen "Neste tjent" blir utført, vil "Tjen.verdi" bli tildelt neste celleverdi i området. Ett klikk på "OK" og fortsetter å vise hver verdi i området til verdiene er ferdig.

Excel VBA for hver sløyfe - eksempel # 2

Vi tar et annet eksempel der vi skal vise navnet på hvert ark i en Excel-fil. La oss anta at vi har ark som er navngitt nedenfor i excel-fil:

Når vi legger merke til at det er rundt 5 ark i excel-filen, og vi må vise navnet på hver enkelt etter en.

Vi vil skrive og utføre koden i delen "ThisWorkbook" som uthevet i den røde ruten nedenfor:

Dobbeltklikk på den, og mens vindusruten vises, og begynn å skrive koden i den. Følg trinnene nedenfor for å bruke For Hver sløyfe i Excel VBA:

Trinn 1: Vi skal skrive koden ved å tildele et delsettnavn som vist nedenfor.

Kode:

 Sub pagename () Slutt Sub 

Trinn 2: Vi kan også direkte begynne å skrive “For” loop-setningen uten å erklære variabelen som vist nedenfor.

Kode:

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

Her er "sht" variabelen vår1 som som standard blir erklært og "Application.sheets" betyr at i filen vurderes alle arkene. Application.fucntion spesifiserer at vi kan legge til en hvilken som helst funksjon eller funksjon eller excel-verktøy som skal vurderes mens du kjører koden.

Trinn 3: Nå skal vi gå inn i meldingsboksen syntaks, og sammen med den skal vi legge til syntaks for å vise arknavnet som vist nedenfor:

Kode:

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

Her er utsagnet som vi ønsker å vise "Arknavnet er:", og deretter skriver vi en ampersand (&) som sammenlister kodelinjen, og deretter skriver vi "sht.Name", dvs. den vil velge arket fra det første ark og vis navnet.

Trinn 4: Nå må vi gjenta prosessen for å vise hvert arknavn. Derfor vil vi bruke “Next sht” som vist nedenfor:

Kode:

 Subpagename () For hver sht In Application.Sheets MsgBox "Navnet på arket er:" & sht.Name Neste sht End Sub 

"Next sht" vil gi systemet beskjed om det, vurder neste ark og vis navnet for videre utførelse.

Trinn 6: Kjør koden ved å trykke på F5 eller Run-knappen og se utdataene.

En gang klikker du på “OK” og koden kjøres videre, den vil vise neste arknavn. Koden kjøres til det ikke er flere ark på skjermen.

Excel VBA for hver sløyfe - eksempel # 3

Vi skal nå ta et eksempel der vi må summere alle verdiene i et gitt datasett eller en matrise. Anta nedenfor er settet med data:.

Følg trinnene nedenfor for å bruke For Hver sløyfe i Excel VBA:

Trinn 1: Forklar først navnet på delmengden som “eachadd ()” som vist nedenfor.

Kode:

 Sub eachadd () Slutt Sub 

Trinn 2: Nå skal vi erklære de nødvendige variablene, ett som heltall med navnet "total" der vi fortsetter å oppsummere celleverdiene en etter en og fikse et område med celler som inneholder verdier vi trenger å legge til.

Kode:

 Sub eachdd () Dim totalt Som heltall Dim Range1 Som Range End Sub 

Trinn 3: Etter å ha erklært variabel og rekkevidde, må vi fikse området som skal brukes til loop. Vi skal fikse dette området fra A1 til A10-celler ved å bruke nøkkelordet "Sett" som vist nedenfor:

Kode:

 Sub eachdd () Dim totalt Som heltall Dim Range1 Som Range Set Range1 = Range ("A1: A10") End Sub 

Trinn 4: Vi kan nå direkte begynne å bruke For-loop-funksjonen og direkte erklære variabelen. Her bruker vi “add1” som variabel, og det vil som standard bli erklært av systemet.

Kode:

 Sub eachdd () Dim totalt Som heltall Dim Range1 Som Range Set Range1 = Range ("A1: A10") For hvert add1 In Range1 End Sub 

Trinn 5: Legge til hver enhet i området én etter én og i variabelen som er erklært “total”. Som standard er verdien “totalt” null. Og vi må legge til en etter én verdi av celler, og igjen må summen legge til “totalt” igjen.

Kode:

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

Ovennevnte utsagn utføres fra høyre til venstre, dvs. "add1.value" er den første celleverdien og legg den til "total" som er null. Derfor vil summen være 0 + 1 som er 1. Og den summen som 1 vil gå i “totalt” før “=” -tegnet. Dette er en fordel da formelen kjøres fra venstre mot høyre.

Trinn 6: Nå legger du til "Neste add1", som nå vil hjelpe deg med å vurdere neste celleverdi i datafeltet og legge til den verdien i den "totale" variabelen som vist nedenfor.

Kode:

 Sub eachdd () Dim totalt Som heltall Dim Range1 Som Range Set Range1 = Range ("A1: A10") For hvert add1 In Range1 total = total + add1.Value Neste add1 End Sub 

Trinn 6: Trykk “F8” for å kjøre koden etter hver linje. Vi kan også se verdien av “total” i skjermdumpen nedenfor.

Tilsvarende, inntil området for celler er over, for loop vil fortsette å utføre denne summen av en matrise.

Trinn 7: Nå bruker vi "Msgbox" nøkkelord.

Kode:

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

Trinn 8: Kjør koden ved å trykke på F5 eller Run-knappen og se utdataene.

Ting å huske

  • "Hvert" nøkkelord brukes bare de fleste gangene i tilfelle bruk av VBA For Loop-funksjonen. Ellers har det begrenset bruk i Excel VBA.
  • Fordelen med "Hvert" søkeord er bare at vi ikke har erklært trinn som fra 1 til x i "For" -uttalelsen.

Anbefalte artikler

Dette er en guide til VBA For Every Loop. Her diskuterer vi hvordan du bruker For Every Loop i Excel ved å bruke VBA-kode sammen med praktiske eksempler og nedlastbar Excel-mal. Nedenfor er noen nyttige excel-artikler relatert til VBA -

  1. VBA Do While Loop
  2. Bytte kolonner i Excel
  3. VBA Break for Loop
  4. Telle navn i Excel
  5. Hvordan kjøre VBA-koden?

Kategori: