VBA Função Cells – Cells, Worksheet.Cells e Range.Cells
In this Article
Este artigo demonstrará como usar a função Cells do VBA.
A função Cells do VBA permite que você faça duas coisas:
- Fazer referência a todas as células em uma planilha
- Fazer referência a uma célula específica
Isso é semelhante ao objeto Range do VBA.
Sintaxe do VBA Cells
A sintaxe tradicional da função Cells do VBA é:
Esse tipo de sintaxe é chamado de sintaxe R1C1, em oposição à sintaxe A1 de uma letra de coluna e, em seguida, um número de linha, que é usada quando se usa o objeto Range no Excel VBA.
Portanto, para selecionar a célula C3, podemos digitar o seguinte código:
Cells(3, 4).Select
isso moverá o ponteiro do Excel para a célula C4 em sua planilha.
Se quisermos usar a função de células para preencher uma célula específica com algum texto e, em seguida, formatar a célula, podemos escrever um código como o do exemplo abaixo:
Sub PreencherCelula()
Cells(2, 2) = "Analise de Vendas de 2022"
Cells(2, 2).Font.Bold = True
Cells(2, 2).Font.Name = "Arial"
Cells(2, 2).Font.Size = 12
End Sub
Isso preencherá a célula B2 com texto e, em seguida, formatará a célula.
Worksheet.Cells
Se quisermos selecionar a planilha inteira usando a função Cells, podemos digitar o seguinte:
Worksheets("Planilha1").Cells.Select
Isso selecionará todas as células da Planilha 1 da mesma forma que pressionar CTRL + A no teclado faria.
Range.Cells
Também podemos usar a função cells para nos referirmos a uma célula específica em um intervalo de células.
Range("A5:B10").Cells(2, 2).Select
Na verdade, isso fará referência à célula que tem o endereço B6 no intervalo original (A5:B10), pois B6 está na segunda linha e na segunda coluna desse intervalo.
Percorrer um Intervalo com a Função Cells
Agora que entendemos a função Cells, podemos usá-la para executar algumas tarefas em loops do VBA.
Por exemplo, se quisermos formatar um intervalo de células dependendo de seu valor, podemos percorrer o intervalo usando a função Cells.
Sub FormatarCelulas()
Dim x As Integer
For x = 1 To 10
If Cells(x, 1) > 5 Then
Cells(x, 1).Interior.Color = vbRed
End If
Next x
End Sub
Esse código começará na célula A1 e fará um loop até a célula A10, alterando a cor de fundo para vermelho se o valor na célula for maior que 5.
Se quisermos levar isso a outro nível, para percorrer as colunas e as linhas, podemos adicionar mais um loop ao código para aumentar as colunas que os loops examinam.
Sub FormatarCelulas()
Dim x As Integer
Dim y As Integer
For x = 1 To 10
For y = 1 To 5
If Cells(x, y) > 5 Then
Cells(x, y).Interior.Color = vbRed
End If
Next y
Next x
End Sub
Agora o loop começará na célula A5, mas continuará até a célula E10.
Também podemos usar a função Cells para fazer loop em um intervalo específico de células
Sub LoopDentroIntervalo()
Dim rng As Range
Dim x As Integer
Dim y As Integer
Set rng = Range("B2:D8")
For x = 1 To 7
For y = 1 To 3
If rng.Cells(x, y) > 5 Then
rng.Cells(x, y).Interior.Color = vbRed
End If
Next y
Next x
End Sub
Esse loop examinaria apenas o intervalo B2:D8 e, em seguida, percorreria as linhas e colunas desse intervalo específico. Lembre-se de que, quando o intervalo é fornecido à função Cells, a função Cells examinará somente esse intervalo e não a planilha inteira.