Como navegar em um intervalo usando vba?

Para percorrer um intervalo no VBA, você precisa usar a opção “For Each Loop”. Usando esse loop, você pode escrever um código onde instrui o VBA a percorrer cada célula do intervalo, coluna ou linha e executar uma atividade específica.

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

Aqui estão os passos para caminhar na praia:

  1. Primeiro, declare uma variável para usar como célula do intervalo a ser repetido.
    loop-through-range
  2. Depois disso, inicie o loop “For Each” e use a variável “iCell” para representar cada célula do intervalo durante o loop.
    use-icell-variable
  3. Em seguida, você precisa escrever uma linha de código para realizar uma atividade em cada célula na qual fazemos o loop do intervalo.
    write-a-line-of-code
  4. No final, encerre o código para um loop.
    end-the-code-for-a-loop

Faça um loop em uma coluna inteira e uma linha usando VBA

Da mesma forma, você pode iterar cada célula em uma linha usando o código a seguir, que é idêntico ao código que usamos no exemplo anterior, a única diferença é o intervalo que especificamos.

percorrer toda a coluna e linha

Nota: Antes de percorrer uma coluna ou linha inteira, você deve entender que o loop pode levar algum tempo e o Excel pode congelar por alguns minutos.

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

E da mesma forma, você pode usar uma linha completa como intervalo a percorrer.

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

Loop através da faixa dinâmica

E se você quiser iterar em um intervalo dinâmico de células, consulte o código a seguir.

percorrer a faixa dinâmica
 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

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *