Excel VBA för varje slinga

"Varje" nyckelord används i VBA tillsammans med "För" -funktionen. Det betyder att för varje enhet i en matris eller intervall upprepar processen in for loop. I grund och botten kommer vi inte att mata in stegintervallet, dvs från 1 till 5 eller 1 till 10, utan istället lägger vi det bara som visas i syntaxen nedan.

Syntax:

För varje objektnamn inom räckvidd

Obs: Du måste ha utvecklare-fliken i Excel-kalkylbladet.

Om du inte ser fliken "Utvecklare" i Excel, se stegen nedan.

Steg 1: Klicka på File Alternativ.

Steg 2: Listrutan visas, Klicka på fliken Alternativ .

Steg 3: När du klickar på “Alternativ” visas en dialogruta som visas nedan och klickar på alternativet Anpassa band .

Steg 4: När vi drar ned i anpassade bandalternativ hittar vi ett alternativ för Developer måste vi kryssa för den rutan som gör att vi kan använda VBA i Excel.

Hur man använder för varje slinga i VBA?

Nedan är de olika exemplen att använda för varje slinga i Excel med VBA-kod.

Du kan ladda ner denna VBA för varje slinga Excel-mall här - VBA för varje slinga Excel-mall

Excel VBA för varje slinga - exempel # 1

Vi ska ta ett enkelt exempel på For Every Loop i VBA. Antag att nedan är uppsättningen av data i VBA.

Följ nedanstående steg för att använda För varje slinga i Excel VBA.

Steg 1: Klicka på fliken "Utvecklare" och klicka sedan på alternativet "Visual Basic" på vänster sida (första alternativet) som visas nedan.

När du klickar på det visas ett nytt fönster som visas nedan.

Du kommer att märka att den innehåller två flikar på vänster sida, "Sheet1 (Sheet1)" och "ThisWorkbook". Den enda skillnaden är "Sheet1" när du bara vill köra kod för just det här bladet och i "ThisWorkbook" kan vi skriva en kod och köra som kan användas för hela Excel-arbetsboken.

Steg 2: Dubbelklicka på “Sheet1 (Sheet1) så ser du en tom skärm där vi behöver skriva koden. Ge ett namn till den delmängd som skapats. Här har vi gett namn som "Sub For_Each_Ex1 ()" som visas i skärmbilden nedan.

Koda:

 Sub For_Each_Ex1 () Slut Sub 

Så här skapar vi en delmängd och automatiskt visas "End Sub". Detta är som standard funktionen i Excel. Om “End Sub” inte visas kommer koden inte att köra och kasta ett fel.

Steg 3: Vi ska förklara variablerna som ett intervall.

Koda:

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

Här har vi förklarat två variabler, "Tjäna" som vi kommer att använda med För varje och "Område1" som intervall för datauppsättningen.

Steg 4: Nu ska vi fixa ett intervall, dvs dataområde som vi måste arbeta med, med hjälp av nyckelordet "Set" som visas nedan.

Koda:

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

Här fixade vi "Range1" från intervallcellerna A1 till A10, vilket är vår datauppsättning.

Steg 5: Vi ska nu köra For loop med varje nyckelord.

Koda:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") För varje Earn In Range1 End Sub 

Här, för varje värde inom räckvidd, kommer Tjäna att få ett värde tilldelat eftersom For-loop körs steg för steg.

Steg 6: Nu ska vi använda "Msgbox" nyckelord för att visa varje radpost i det tilldelade området.

Koda:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") För varje Earn In Range1 MsgBox Earn.Value End Sub 

Här kommer "Earn.value" att visa värdet i cellen, dvs. från den första cellen i området.

Steg 7: Nu vill vi köra nästa värde i det angivna cellområdet, och därför måste vi använda "Nästa" nyckelord i koden. Detta hjälper dig att gå vidare i intervallet och visa varje enhet i cellområdet en efter en.

Koda:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") För varje Earn In Range1 MsgBox Earn.Value Nästa Earn End Sub 

Steg 8: Kör koden genom att slå F5 eller Run-knappen och se utgången.

I det ögonblick koden "Next Earn" körs kommer "Earn.value" att tilldelas nästa cellvärde i intervallet. Klicka på ”OK” en efter en och fortsätter att visa varje värde i intervallet tills värdet är klart.

Excel VBA för varje slinga - exempel # 2

Vi tar ytterligare ett exempel där vi ska visa namnet på varje ark i en Excel-fil. Låt oss anta att vi har ark med namnet nedan i Excel-fil:

Eftersom vi märker att det finns cirka 5 ark i Excel-filen och vi måste visa namnet på var och en för en.

Vi kommer att skriva och köra koden i avsnittet ”ThisWorkbook” som markeras i den röda rutan nedan:

Dubbelklicka på den och medan fönsterrutan visas och börja skriva koden i den. Följ nedanstående steg för att använda För varje slinga i Excel VBA:

Steg 1: Vi ska skriva koden genom att tilldela ett delmängdsnamn som visas nedan.

Koda:

 Sub pagename () End Sub 

Steg 2: Vi kan också direkt börja skriva ”For” -släkning utan att deklarera variabeln som visas nedan.

Koda:

 Subpagename () För varje sht In Application.Sheets End Sub 

Här är "sht" vår variabel1 som som standard blir deklarerad och "Application.sheets" betyder att i filen betraktas alla ark. Application.fucntion anger att vi kan lägga till alla funktioner eller funktioner eller excelverktyg som ska beaktas vid körning av koden.

Steg 3: Nu kommer vi att ange syntaxen i meddelandelådan och tillsammans med den lägger vi till syntax till visningsbladets namn som visas nedan

Koda:

 Subpagename () För varje sht I Application.Sheets MsgBox "Arkens namn är:" & sht.Name End Sub 

Här är uttalandet som vi vill visa "Arkens namn är:" och sedan skriver vi ett ampersand (&) som sammanlänker kodraden och sedan skriver vi "sht.Name", dvs att det kommer att välja det ark som börjar från den första ark och visa namnet.

Steg 4: Nu måste vi upprepa processen för att visa varje arknamn. Därför skulle vi använda "Nästa sht" som visas nedan:

Koda:

 Subpagename () För varje sht I Application.Sheets MsgBox "Arkens namn är:" & sht.Name Nästa sht End Sub 

"Nästa sht" kommer att låta systemet veta det, överväga nästa ark och visa dess namn för vidare körning.

Steg 6: Kör koden genom att slå F5 eller Run-knappen och se utgången.

En gång klickar du på “OK” och koden körs ytterligare, den kommer att visa nästa arknamn. Koden körs tills det inte finns några fler ark på displayen.

Excel VBA för varje slinga - exempel # 3

Vi ska nu ta ett exempel där vi måste summera alla värden i en given uppsättning data eller en matris. Antag att nedan är uppsättningen av data :.

Följ nedanstående steg för att använda För varje slinga i Excel VBA:

Steg 1: Förklara först delmängdsnamnet som ”eachadd ()” som visas nedan.

Koda:

 Sub eachadd () Slut Sub 

Steg 2: Nu ska vi förklara de variabler som behövs, en som heltal med namnet “total” där vi fortsätter att summera cellvärdena en efter en och fixa ett område med celler som innehåller värden vi behöver lägga till.

Koda:

 Sub eachadd () Dim totalt som heltal Dim Range1 Som Range End Sub 

Steg 3: Efter att vi har angett variabel och intervall måste vi fixa det område som ska användas för slingan. Vi ska fixa detta intervall från A1 till A10-celler med hjälp av nyckelordet "Set" som visas nedan:

Koda:

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

Steg 4: Vi kan nu direkt börja använda funktionen För slinga och direkt deklarera variabeln. Här använder vi ”add1” som variabel och det kommer som standard att deklareras av systemet.

Koda:

 Sub eachadd () Dim summa som heltal Dim Range1 Som Range Set Range1 = Range ("A1: A10") För varje add1 In Range1 End Sub 

Steg 5: Lägga till varje enhet i intervallet en efter en och i den variabel som deklareras som "total". Som standard är värdet ”totalt” initialt noll. Och vi måste lägga till ett efter ett värde på celler och igen måste summan lägga till "totalt" igen.

Koda:

 Sub eachadd () Dim summa som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") För varje add1 In Range1 total = total + add1.Value End Sub 

Ovanstående uttalande körs från höger till vänster, dvs "add1.value" är det första cellvärdet och lägg till det till "total" som är noll. Därför skulle summan vara 0 + 1 vilket är 1. Och den summan som 1 skulle gå i "total" före "=" -tecknet. Detta är en fördel eftersom formeln körs från vänster till höger.

Steg 6: Lägg nu till "Nästa add1" som nu kommer att hjälpa till att överväga nästa cellvärde för dataområdet och lägga till det värdet i variabeln "total" som visas nedan.

Koda:

 Sub eachadd () Dim summa som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") För varje add1 In Range1 total = total + add1.Value Nästa add1 End Sub 

Steg 6: Tryck på “F8” för att köra koden för varje rad. Vi kan också se värdet på "totalt" i skärmdumpen nedan.

På samma sätt, tills cellintervallet går över, för loop kommer att fortsätta att utföra denna summa av en matris.

Steg 7: Nu använder vi nyckelordet "Msgbox".

Koda:

 Sub eachadd () Dim total Som heltal Dim Range1 As Range Set Range1 = Range ("A1: A10") För varje add1 In Range1 total = total + add1.Value Nästa add1 MsgBox "Final Summation:" & total End Sub 

Steg 8: Kör koden genom att slå F5 eller Run-knappen och se utgången.

Saker att komma ihåg

  • Nyckelordet "Varje" används bara de flesta gånger om endast VBA For Loop-funktion används. Annars har den begränsad användning i Excel VBA.
  • Fördelen med "Varje" nyckelord är bara att vi inte har deklarerat steg som från 1 till x i uttalandet "För".

Rekommenderade artiklar

Detta är en guide till VBA för varje slinga. Här diskuterar vi hur du använder För varje slinga i Excel med VBA-kod tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Nedan finns några användbara excel-artiklar relaterade till VBA -

  1. VBA gör medan slingan
  2. Växla kolumner i Excel
  3. VBA Break för Loop
  4. Räkna namn i Excel
  5. Hur kör man VBA-koden?

Kategori: