Hoe navigeer je door een bereik met vba?

Om een bereik in VBA te doorlopen, moet je de optie “For Each Loop” gebruiken. Met behulp van deze lus kunt u code schrijven waarin u VBA vertelt elke cel in het bereik, de kolom of de rij te doorlopen en een specifieke activiteit uit te voeren.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A1:A10").Cells   iCell.Value = "Yes" Next iCell End Sub

Hier zijn de stappen om over een strand te lopen:

  1. Declareer eerst een variabele die u wilt gebruiken als de cel van het bereik waarover u een lus wilt maken.
    loop-through-range
  2. Start daarna de lus “For Each” en gebruik de variabele “iCell” om elke cel in het bereik tijdens de lus weer te geven.
    use-icell-variable
  3. Vervolgens moet u een regel code schrijven om een activiteit uit te voeren op elke cel waarin we het bereik herhalen.
    write-a-line-of-code
  4. Beëindig aan het einde de code voor een lus.
    end-the-code-for-a-loop

Loop over de hele kolom en één rij met VBA

Op dezelfde manier kunt u elke cel in een rij doorlopen met behulp van de volgende code die identiek is aan de code die we in het vorige voorbeeld hebben gebruikt. Het enige verschil is het bereik dat we hebben opgegeven.

loop-door-de-hele-kolom-en-rij

Opmerking: voordat u een hele kolom of rij doorloopt, moet u begrijpen dat de lus enige tijd kan duren en dat uw Excel een paar minuten kan vastlopen.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A:A").Cells   iCell.Value = "Yes" Next iCell End Sub

En op dezelfde manier kunt u een volledige lijn gebruiken als bereik.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("1:1").Cells   iCell.Value = "Yes" Next iCell End Sub

Loop door het dynamisch bereik

En als u een dynamisch celbereik wilt herhalen, raadpleegt u de volgende code.

loop door het dynamisch bereik
 Sub vba_dynamic_loop_range() Dim iCell As Range Dim iRange1 As String Dim iRange2 As String Dim rangeName As String iRange1 = ActiveCell.Address iRange2 = ActiveCell.Offset(5, 5).Address rangeName = iRange1 & ":" & iRange2 For Each iCell In Range(rangeName).Cells   iCell = "Yes" Next iCell End Sub

Voeg een reactie toe

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