Excel VBA voor elke lus

"Elk" trefwoord wordt gebruikt in VBA samen met de "For" -functie. Het betekent dat voor elke entiteit in een array of het bereik het proces wordt herhaald in voor lus. Kortom, we zullen het stapbereik niet invoeren, dwz van 1 tot 5 of 1 tot 10, in plaats daarvan plaatsen we het gewoon zoals getoond in de onderstaande syntaxis.

Syntaxis:

Voor elke objectnaam binnen bereik

Opmerking: u moet het tabblad Ontwikkelaars in het Excel-werkblad hebben.

Als u het tabblad 'Ontwikkelaar' niet ziet in Excel, volgt u de onderstaande stappen.

Stap 1: Klik op File Option.

Stap 2: Vervolgkeuzelijst verschijnt, klik op het tabblad Opties .

Stap 3: Zodra u op "Opties" klikt, verschijnt een dialoogvenster zoals hieronder weergegeven en klikt u op de optie Lint aanpassen .

Stap 4: Wanneer we naar beneden slepen in de lintopties aanpassen, vinden we een optie voor de ontwikkelaar. We moeten dat vakje aanvinken waarmee we VBA in Excel kunnen gebruiken.

Hoe te gebruiken voor elke lus in VBA?

Hieronder staan ​​de verschillende voorbeelden om voor elke lus in Excel te gebruiken met behulp van VBA-code.

U kunt deze VBA voor elke lus Excel-sjabloon hier downloaden - VBA voor elke lus Excel-sjabloon

Excel VBA voor elke lus - Voorbeeld # 1

We zullen een eenvoudig voorbeeld nemen van For Each Loop in VBA. Stel dat hieronder de gegevensset in VBA staat.

Volg de onderstaande stappen om For Every Loop in Excel VBA te gebruiken.

Stap 1: Klik op het tabblad "Ontwikkelaar" en klik vervolgens op de optie "Visual Basic" aan de linkerkant (eerste optie) zoals hieronder weergegeven.

Zodra u erop klikt, verschijnt een nieuw venster zoals hieronder wordt getoond.

U zult merken dat het twee tabbladen aan de linkerkant bevat, "Sheet1 (Sheet1)" en "ThisWorkbook". Het enige verschil is "Blad1" wanneer u code alleen voor dit specifieke blad wilt uitvoeren en in "ThisWorkbook" kunnen we een code schrijven en uitvoeren die kan worden toegepast voor de hele Excel-werkmap.

Stap 2: Dubbelklik op “Sheet1 (Sheet1) en u zult een leeg scherm zien waar we de code moeten schrijven. Geef een naam voor de gemaakte subset. Hier hebben we de naam gegeven als "Sub For_Each_Ex1 ()" zoals weergegeven in de onderstaande schermafbeelding.

Code:

 Sub For_Each_Ex1 () End Sub 

Dit is de manier waarop we een subset maken en automatisch verschijnt "End Sub". Dit is standaard de functie van Excel. Als "End Sub" niet verschijnt, wordt de code niet uitgevoerd en wordt er een foutmelding weergegeven.

Stap 3: We verklaren de variabelen als een bereik.

Code:

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

Hier hebben we twee variabelen verklaard, "Earn" die we zullen gebruiken met For Each en "Range1" als het bereik van de gegevensset.

Stap 4: Nu zullen we een bereik, dat wil zeggen een gegevensbereik, repareren waaraan we moeten werken door het trefwoord “Set” te gebruiken, zoals hieronder getoond.

Code:

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

Hier hebben we “Bereik1” gerepareerd vanaf bereikcellen A1 tot A10, wat onze gegevensset is.

Stap 5: We zullen nu For For uitvoeren met behulp van elk sleutelwoord.

Code:

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

Hier krijgt Earn voor elke waarde in Bereik een waarde toegewezen omdat For-lus stap voor stap wordt uitgevoerd.

Stap 6: Nu zullen we het trefwoord "Msgbox" gebruiken om elk regelitem in het toegewezen bereik weer te geven.

Code:

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

Hier geeft "Earn.value" de waarde in de cel weer, dwz beginnend bij de eerste cel in het bereik.

Stap 7: Nu willen we de volgende waarde in het gegeven celbereik uitvoeren, daarom moeten we het trefwoord "Volgende" in de code gebruiken. Dit zal helpen om verder te gaan in het bereik en elke entiteit in celbereik één voor één weer te geven.

Code:

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

Stap 8: Voer de code uit door op F5 of de knop Run te drukken en de uitvoer te bekijken.

Op het moment dat de coderegel "Next Earn" wordt uitgevoerd, wordt "Earn.value" toegewezen met de volgende celwaarde in het bereik. Klik één voor één op "OK" en blijft elke waarde in het bereik weergeven totdat het waardenbereik is voltooid.

Excel VBA voor elke lus - Voorbeeld # 2

We zullen een ander voorbeeld nemen waarin we de naam van elk blad weergeven in een Excel-bestand. Laten we aannemen dat we bladen hebben die hieronder worden genoemd in Excel-bestand:

Zoals we merken dat het excel-bestand ongeveer 5 bladen bevat en we de namen van elk een voor een moeten weergeven.

We zullen de code schrijven en uitvoeren in de sectie "ThisWorkbook" zoals gemarkeerd in het rode vak hieronder:

Dubbelklik erop en terwijl het venster verschijnt en begin de code erin te schrijven. Volg de onderstaande stappen om For Every Loop in Excel VBA te gebruiken:

Stap 1: We schrijven de code door een subsetnaam toe te wijzen, zoals hieronder weergegeven.

Code:

 Sub-paginanaam () Einde Sub 

Stap 2: We kunnen ook direct beginnen met het schrijven van de "For" -lusinstructie zonder de variabele te declareren zoals hieronder wordt weergegeven.

Code:

 Sub-paginanaam () Voor elke sht in Application.Sheets End Sub 

Hier is "sht" onze variabele1 die standaard wordt gedeclareerd en "Application.sheets" betekent dat in het bestand alle bladen worden beschouwd. Application.fucntion geeft aan dat we elke functie of functie of Excel-tool kunnen toevoegen waarmee rekening moet worden gehouden tijdens het uitvoeren van de code.

Stap 3: Nu zullen we de syntaxis van het berichtenvak invoeren en samen zullen we syntaxis toevoegen om de bladnaam weer te geven zoals hieronder getoond:

Code:

 Sub paginanaam () Voor elke sht in Application.Sheets MsgBox "De bladnaam is:" & sht.Name End Sub 

Hier is de instructie die we willen weergeven: "De bladnaam is:" en dan typen we een ampersand (&) die de coderegel samenvoegt en dan typen we "sht.Name", dwz het selecteert het blad vanaf de eerste blad en geef de naam weer.

Stap 4: Nu moeten we het proces herhalen voor het weergeven van elke bladnaam. Daarom zouden we “Volgende sht” gebruiken zoals hieronder getoond:

Code:

 Sub paginanaam () Voor elke sht in Application.Sheets MsgBox "De bladnaam is:" & sht.Name Volgende sht End Sub 

"Volgende sht" zal het systeem laten weten dat, het volgende blad overwegen en zijn naam weergeven voor verdere uitvoering.

Stap 6: Voer de code uit door op F5 of de knop Run te drukken en de uitvoer te bekijken.

Zodra u op "OK" klikt, wordt de code verder uitgevoerd en wordt de volgende bladnaam weergegeven. De code wordt uitgevoerd totdat er geen bladen meer worden weergegeven.

Excel VBA voor elke lus - Voorbeeld # 3

We zullen nu een voorbeeld nemen waarin we alle waarden in een gegeven set gegevens of een array moeten optellen. Neem aan dat hieronder de set gegevens staat :.

Volg de onderstaande stappen om For Every Loop in Excel VBA te gebruiken:

Stap 1: Declareer eerst de naam van de subset als "eachadd ()" zoals hieronder weergegeven.

Code:

 Sub eachadd () End Sub 

Stap 2: Nu zullen we de benodigde variabelen declareren, één als geheel getal met de naam "totaal", waarin we de celwaarden één voor één blijven opsommen en een celbereik bepalen met waarden die we moeten toevoegen.

Code:

 Sub eachadd () Dim totaal Als geheel getal Dim bereik1 Als bereik einde Sub 

Stap 3: Na het declareren van de variabele en het bereik, moeten we het bereik bepalen dat voor lus moet worden gebruikt. We zullen dit bereik van A1 tot A10 cellen repareren met behulp van het trefwoord “Set” zoals hieronder getoond:

Code:

 Sub eachadd () Dim totaal Als geheel getal Dim bereik1 Als bereik ingesteld Bereik1 = bereik ("A1: A10") Einde Sub 

Stap 4: We kunnen nu direct de For-lusfunctie gebruiken en de variabele direct declareren. Hier gebruiken we “add1” als variabele en dit wordt standaard door het systeem aangegeven.

Code:

 Sub eachadd () Dim totaal Als geheel getal Dim bereik1 Als bereik ingesteld Bereik1 = bereik ("A1: A10") Voor elke add1 in bereik1 Einde sub 

Stap 5: Elke entiteit in het bereik één voor één toevoegen aan de variabele die als "totaal" wordt aangegeven. Standaard is de waarde van "totaal" aanvankelijk nul. En we moeten één voor één waarde van cellen toevoegen en opnieuw moet die som opnieuw "totaal" toevoegen.

Code:

 Sub eachadd () Dim totaal Als geheel getal Dim bereik1 Als bereik Set Bereik1 = bereik ("A1: A10") Voor elke add1 in bereik1 totaal = totaal + add1. Waarde einde sub 

De bovenstaande instructie wordt van rechts naar links uitgevoerd, dwz "add1.value" is de eerste celwaarde en voegt deze toe aan "total", dat nul is. Daarom zou de som 0 + 1 zijn die 1 is. En die som als 1 zou in "totaal" vóór het teken "=" komen. Dit is een voordeel omdat de formule van links naar rechts wordt uitgevoerd.

Stap 6: Voeg nu “Volgende add1” toe, wat nu helpt om de volgende celwaarde van het gegevensbereik te overwegen en die waarde toe te voegen aan de variabele “totaal” zoals hieronder weergegeven.

Code:

 Sub eachadd () Dim totaal Als geheel getal Dim bereik1 Als bereik Set Bereik1 = bereik ("A1: A10") Voor elke add1 in bereik1 totaal = totaal + add1.Waarde Volgende add1 End Sub 

Stap 6: Druk op "F8" om de code per regel uit te voeren. We kunnen ook de waarde van "totaal" zien in de onderstaande schermafbeelding.

Evenzo, totdat het bereik van cellen voorbij is, zal for loop deze som van een array blijven uitvoeren.

Stap 7: Nu gebruiken we het trefwoord 'Msgbox'.

Code:

 Sub eachadd () Totaal dimmen als geheel getal Dim bereik1 Als bereik ingesteld Bereik1 = bereik ("A1: A10") Voor elke add1 in bereik1 totaal = totaal + add1.Value Volgende add1 MsgBox "Final Summation:" & total End Sub 

Stap 8: Voer de code uit door op F5 of de knop Run te drukken en de uitvoer te bekijken.

Dingen om te onthouden

  • "Elk" trefwoord wordt meestal alleen gebruikt in het geval van het gebruik van de VBA For Loop-functie. Anders heeft het een beperkt gebruik in Excel VBA.
  • Het voordeel voor het trefwoord 'Elk' is alleen dat we geen stappen zoals van 1 tot x aangeven in de instructie 'For'.

Aanbevolen artikelen

Dit is een handleiding voor VBA voor elke lus. Hier bespreken we hoe u voor elke lus in Excel kunt gebruiken met behulp van VBA-code, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. Hieronder staan ​​enkele nuttige Excel-artikelen met betrekking tot VBA -

  1. VBA doen terwijl lus
  2. Schakelen tussen kolommen in Excel
  3. VBA Break for Loop
  4. Tel namen in Excel
  5. Hoe de VBA-code uitvoeren?

Categorie: