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:
- Primeiro, declare uma variável para usar como célula do intervalo a ser repetido.
- Depois disso, inicie o loop “For Each” e use a variável “iCell” para representar cada célula do intervalo durante o loop.
- 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.
- No final, encerre o código para um 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.
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.
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