Bladeren door spreadsheets in vba (met voorbeelden)
U kunt de volgende methoden gebruiken om met VBA door werkbladen in een Excel-werkmap te navigeren:
Methode 1: Doorloop alle spreadsheets
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
End Sub
Deze specifieke macro doorloopt elk blad in een werkmap en stelt de waarde in cel A1 van elk blad in op 100.
Methode 2: Blader door alle werkbladen, met uitzondering van specifieke werkbladen
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
Deze specifieke macro loopt door elk blad in een werkmap en stelt de waarde in cel A1 van elk blad in op 100, behalve voor bladen genaamd Sheet2 en Sheet3 .
De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken met een Excel-werkmap met vier lege bladen:
Voorbeeld 1: Blader door alle werkbladen
We kunnen de volgende macro gebruiken om de waarde van cel A1 op elk blad in onze werkmap in te stellen op 100:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
Wanneer we deze macro uitvoeren, is de waarde van cel A1 in elk blad van de werkmap gelijk aan 100:
Voorbeeld 2: Blader door alle werkbladen, met uitzondering van specifieke werkbladen
Laten we zeggen dat we elk werkblad willen doorlopen en de waarde van cel A1 in elk blad op 100 willen instellen, behalve voor de bladen genaamd Blad2 en Blad3 .
We kunnen hiervoor de volgende macro maken:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
Wanneer we deze macro uitvoeren, zien we dat Blad1 en Blad4 de waarde 100 hebben in cel A1 .
Blad2 en Blad3 hebben echter geen waarde in cel A1 , omdat we de functie Case hebben gebruikt om deze bladen te negeren:
Houd er rekening mee dat we in deze voorbeelden elk werkblad hebben doorlopen en de waarde van een cel gelijk hebben gesteld aan een specifieke waarde, puur voor de eenvoud.
U kunt echter een vergelijkbare syntaxis gebruiken met een For Each -instructie om desgewenst veel gecompliceerdere taken op elk blad uit te voeren.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: het aantal rijen binnen bereik tellen
VBA: cellen tellen met specifieke tekst
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven