Inhoudsopgave
In grote databases bent u het grootste deel van uw tijd bezig met bereiken en cellen. Soms moet u dezelfde actie herhalen in grote bereiken of een groot aantal cellen. Dit kost u tegelijkertijd tijd en vermindert uw efficiëntie. De slimme oplossing voor dit probleem is om een VBA-programmeercode die elke cel in het bereik doorloopt en dezelfde actie uitvoert die door u is aangegeven. Vandaag bespreken we in dit artikel hoe u VBA uitvoert voor elke cel in een bereik in Excel.
Download Praktijk Werkboek
Download dit oefenboek om de taak te oefenen terwijl u dit artikel leest.
VBA-code voor elke cel in een bereik in Excel.xlsx3 geschikte manieren om VBA toe te passen voor elke cel in een bereik in Excel
Met een VBA-code kunt u dezelfde formule uitvoeren op elke cel in een bereik of een kolom of een rij. In dit deel zullen we alle delen doorlopen.
1. VBA toepassen voor elke cel in het bereik
Overweeg een situatie waarin u dezelfde VBA-code moet toepassen voor elke cel in een bepaald bereik ( B3:F12 ). Om dit te doen zullen we een VBA-code maken. De instructies worden hieronder gegeven
Stap 1:
- Eerst zullen we een opdrachtknop invoegen om ons werk te vereenvoudigen. Ga naar uw Tabblad Ontwikkelaar kies Plaats en klik op de opdrachtknop om er een te krijgen.
- We hebben onze opdrachtknop.
- Klik met de rechtermuisknop op de opdrachtknop om opties te openen. Selecteer en klik op Eigenschappen om enkele opties te wijzigen.
- Verander de titel van de opdrachtknop. Hier veranderen we de naam in, " Klik hier ".
Stap 2:
- Dubbelklik nu op de opdrachtknop om de VBA te openen Module Hier zullen we onze VBA-code voor de taak opschrijven.
- Eerst zullen we twee variabelen declareren. We noemen de reeks objecten CL en Rng Je kunt ze noemen zoals je wilt.
Dim CL als Bereik Dim Rng als Bereik
- Wijs met dit commando een specifiek bereik toe,
Set Rng = Worksheets("VBA1").Range("B3:F12")
- Hier is VBA1 onze werkbladnaam en B3:F12 is ons gedefinieerde bereik.
- Nu gaan we de code gebruiken om elke cel in het bereik te doorlopen. De code is,
Voor Elke CL In Rng CL.Waarde = 100 Volgende CL
- Waarde = 100 verwijst dat het zal terugkeren 100 voor elke cel in het opgegeven bereik.
- Dus onze uiteindelijke code wordt,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub
- Ga naar uw hoofdwerkblad en klik op de opdrachtknop om VBA uit te voeren voor elke cel in het bereik.
Stap 3:
- Net als numerieke waarden kunnen we ook tekstwaarden invoeren voor elke cel in het bereik. Ga in dat geval naar het VBA-venster en voeg in plaats van 100 de tekstwaarde in die u wilt doorlopen. De gewijzigde regel is dan
CL.Value = "ExcelWIKI"
- Klik op de opdrachtknop en de VBA-code geeft deze tekstwaarde terug voor elke cel in het bereik.
Stap 4:
- In deze stap gaan we iets dieper. Laten we zeggen dat we elke lege cel in ons bereik willen markeren.
- Voeg daarvoor een nieuwe voorwaarde toe aan uw bestaande code. De nieuwe formule is,
Als CL.Value = " " Dan CL.Interior.ColorIndex = 3 End If
- Deze nieuwe code markeert de lege cel met een rode kleur. Dus de volledige code is,
Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub
- Haal het resultaat door op de opdrachtknop te klikken.
Vergelijkbare lezingen:
- Hoe het Range Object van VBA gebruiken in Excel (5 eigenschappen)
- VBA Range Offset gebruiken (11 manieren)
- Tekst tellen in Excel (7 eenvoudige trucs)
2. VBA-code invoegen voor elke cel in een kolom van een bereik
We kunnen ook VBA-code uitvoeren voor elke cel in een kolom. Stel dat we een kolom met getallen hebben en we moeten waarden die lager zijn dan 10 inkleuren. We zullen een VBA-code maken om elke cel in de kolom uit te voeren.
Stap 1:
- Maak een opdrachtknop volgens de instructies die we hebben besproken.
Stap 2:
- Dubbelklik op de opdrachtknop om het VBA-venster te openen.
- We zullen een variabele genaamd " c "Wij gebruiken hier het type Long-variabele omdat Long-variabelen een grotere capaciteit hebben dan Integer-variabelen.
Dim c als Lang
- Voeg vervolgens de coderegel toe die de letterkleur van alle cellen in onze kolom verandert in zwart.
Columns(1).Font.Color = vbBlack
- Plaats de lus voor deze code.
Voor c = 1 tot Rows.Count Volgende c
- In deze stap zullen we een voorwaarde invoeren om de waarden die lager zijn dan de waarde van cel C4 (10) in te kleuren. Voer daarvoor deze code in.
Als Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If
- Dus de uiteindelijke code is,
Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub
- De VBA wordt uitgevoerd en toont resultaten wanneer u op de opdrachtknop klikt.
3. Schrijf een VBA-code voor elke cel in een rij van een bereik
We kunnen ook een VBA-code uitvoeren voor elke cel in een rij. In de gegeven rij moeten we dezelfde actie uitvoeren op elke cel van de rij.
Stap 1:
- Voeg een opdrachtknop toe en verander de naam in " Klik hier! "
- Dubbelklik op de knop om het VBA-venster te openen. Noteer de onderstaande VBA-code.
Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'Voor elke cel in een rij, en pas een gele kleur vulling toe Voor Elke r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub
- De code doorloopt elke cel van de rij en vult elke cel met een gele kleur.
- Klik op de knop en ons resultaat is hier.
Snelle opmerkingen
👉 Als uw ontwikkelaarstabblad niet zichtbaar is, kunt u het activeren met deze instructie.
Aangepaste werkbalk Snelle toegang → Meer opdrachten → Lint aanpassen → Ontwikkelaar → OK
Conclusie
We hebben drie verschillende benaderingen doorlopen om VBA uit te voeren voor elke cel in een bereik. U bent van harte welkom om commentaar te geven als u vragen heeft. U kunt ook onze andere artikelen met betrekking tot de Excel-taken bekijken!