Fazer loop através de um intervalo de células

Ao usar o Visual Basic, você frequentemente precisa executar o mesmo bloco de instruções em cada célula de um intervalo de células. Para fazer isso, você combina uma instrução de loop com um ou mais métodos para identificar cada célula, uma de cada vez, e executa a operação.

Uma maneira de fazer loop através de um intervalo é usar o loop For...Next com a propriedade Cells. Usando a propriedade Cells, você pode substituir o contador de loops (ou outras variáveis ou expressões) pelos números de índice de célula. No exemplo seguinte, a variável counter é substituída pelo índice de linha. O procedimento faz um loop através do intervalo C1:C20, definindo como 0 (zero) qualquer número cujo valor absoluto seja menor que 0,01.

Sub RoundToZero1() 
 For Counter = 1 To 20 
 Set curCell = Worksheets("Sheet1").Cells(Counter, 3) 
 If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 
 Next Counter 
End Sub

Uma outra maneira mais fácil de se fazer um loop através de um intervalo é usar um loop For Each...Next com a coleção de células retornada pela propriedade Range. O Visual Basic define automaticamente uma variável de objeto para a próxima célula cada vez que o loop é executado. O procedimento seguinte faz um loop através do intervalo A1:D10, definindo como 0 (zero) qualquer número cujo valor absoluto seja menor que 0,01.

Sub RoundToZero2() 
 For Each c In Worksheets("Sheet1").Range("A1:D10").Cells 
 If Abs(c.Value) < 0.01 Then c.Value = 0 
 Next 
End Sub

Se você não souber os limites do intervalo pelo qual deseja fazer o loop, poderá usar a propriedade CurrentRegion para retornar o intervalo que circunda a célula ativa. Por exemplo, o procedimento seguinte, quando executado de uma planilha, faz um loop através do intervalo que envolve a célula ativa, definindo como 0 (zero) qualquer número cujo valor absoluto seja menor que 0,01.

Sub RoundToZero3() 
 For Each c In ActiveCell.CurrentRegion.Cells 
 If Abs(c.Value) < 0.01 Then c.Value = 0 
 Next 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.