Hoe door alle bladen heen bladeren met vba in excel?

Er zijn twee manieren om alle werkbladen in een werkmap te doorlopen.

  • VOOR DE VOLGENDE LUS
  • VOOR ELKE KRUL

1. Gebruik voor elke lus

Zoals u weet, kunt u met FOR EACH alle objecten in de verzameling doorlopen, en in een werkmap zijn werkbladen een verzameling van alle werkbladen.

Gebruik de volgende stappen:

  1. Declareer eerst een variabele die verwijst naar een werkblad voor de lus.
    declare-a-variable-to-refer
  2. Start daarna de lus met het trefwoord ‘Voor elk’ en verwijs naar elk werkblad in de werkmap.
    start-the-loop-with-the-keyword
  3. Stel nu dat u een waarde wilt invoeren in cel A1 van elk werkblad, dan kunt u de schrijfcode als volgt gebruiken.
    want-to-enter-a-value-in-the-cell
  4. Gebruik aan het einde het trefwoord “End” om de lus te beëindigen.
    use-the-keyword-end

Handige links: Een macro uitvoerenMacrorecorderVisual Basic EditorHandboek voor persoonlijke macro’s

 Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A1").Value = "Yes" Next ws End Sub

Deze code doorloopt elk blad en voert de waarde in cel A1 van elk blad in. Het voordeel van het gebruik van deze methode is dat alle bladen in de werkmap worden doorlopen.

En als u door alle werkbladen in een gesloten werkmap wilt bladeren, gebruikt u de onderstaande code.

 Sub vba_loop_sheets() Dim wb As Workbook Dim ws As Worksheet Application.DisplayAlerts = False Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") For Each ws In wb.Worksheets ws.Range("A1").Value = "Done" Next ws wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

2. Gebruik de For Next-lus

U kunt ook de FOR NEXT -lus gebruiken, waarbij u het aantal bladen kunt gebruiken om te beslissen hoeveel lussen u wilt maken en de lusteller kunt gebruiken om naar elk blad te verwijzen.

Hier zijn de stappen die u moet volgen:

  1. Eerst moet u twee variabelen declareren om de telwaarde voor de lus op te slaan, en één voor het aantal bladen dat u in de werkmap heeft.
    declare-to-variable-to-write-count-value
  2. Stel nu de waarde van de variabele “shtCount” in die overeenkomt met het aantal bladen dat u in de werkmap heeft.
    set-the-value-for-the-shtcount
  3. Start daarna de code voor de lus met behulp van het trefwoord “For i” en gebruik het aantal bladeren van de maximale waarde voor de lusteller.
    start-the-code
  4. Vanaf hier moet u de lusteller gebruiken om alle bladen te doorlopen en de waarde “Ja” in cel A1 van elk blad in te voeren.
    use-the-loop-counter-to-loop

Volledige code

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long shtCount = Sheets.Count For i = 1 To shtCount Sheets(i).Range("A1").Value = "Yes" Next i End Sub

En als u door een gesloten werkmap wilt bladeren, gebruikt u de volgende code.

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") shtCount = wb.Sheets.Count Application.DisplayAlerts = False For i = 1 To shtCount wb.Sheets(i).Range("A1").Value = "Yes" Next i wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *