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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert