VBA Valor da Célula – Obter, Definir ou Alterar
Este tutorial lhe ensinará como interagir com Valores das Células usando VBA.
Definir Valor da Célula
Para definir o Valor da Célula, use a propriedade de Value do objeto Range ou Cells.
Range.Value & Cells.Value
Há duas maneiras de se referenciar a(s) célula(s) em VBA:
- Objeto Range – Range (“A2”).Value
- Objeto Cells – Cells(2,1).Value
O objeto Range permite fazer referência a uma célula usando a notação padrão “A1”.
Isto definirá o valor da célula A2 = 1:
Range("A2").Value = 1
O objeto Cells permite referenciar uma célula pelo seu número de linha e número de coluna.
Isto definirá o valor da célula A2 = 1:
Cells(2,1).Value = 1
Observe que você informa primeiro o número da linha:
Cells(Num_linha, Num_coluna)
Definir Valores de Múltiplas Células ao mesmo tempo
Em vez de referenciar uma única célula, você pode referenciar um intervalo de células e alterar todos os valores de célula de uma só vez:
Range("A2:A5").Value = 1
Definir Valor da Célula – Texto
Nos exemplos acima, definimos o valor da célula igual a um número (1). Em vez disso, você pode definir o valor da célula igual a uma sequência de texto. Em VBA, todo o texto deve ser informado entre aspas:
Range("A2").Value = "Texto"
Se você informar o texto entre aspas, o VBA pensará que você se refere a uma variável.
Definir Valor da Célula – Variável
Você também pode definir um valor de célula igual a uma variável
Dim strTexto as String
strTexto = "Sequencia de Texto"
Range("A2").Value = strTexto
Obter o Valor da célula
Você pode obter valores de células usando a mesma propriedade Value que usamos acima.
Obter o Valor ActiveCell
Para obter o valor ActiveCell e exibi-lo em uma caixa de mensagens:
MsgBox ActiveCell.Value
Atribuir Valor de uma Célula à Variável
Para obter um valor de célula e atribuí-lo a uma variável:
Dim var as Variant
var = Range("A1").Value
Aqui usamos uma variável do tipo Variant. As variáveis do tipo Variant podem aceitar qualquer tipo de valor. Em vez disso, você poderia usar uma variável do tipo String:
Dim var as String
var = Range("A1").Value
Um tipo de variável String aceitará valores numéricos, mas armazenará os números como texto.
Se você souber que o valor de sua célula será numérico, você poderá usar uma variável do tipo Double (variáveis do tipo Double podem armazenar valores decimais):
Dim var as Double
var = Range("A1").Value
No entanto, se você tentar armazenar um valor de célula contendo texto em uma variável dupla, você receberá um erro de tipos incompatíveis:
Outros Exemplos de Valores de Células
Copiar o Valor da Célula
É fácil definir um valor de célula igual a outro valor de célula (ou “Copiar” um valor de célula):
Range("A1").Value = Range("B1").Value
Você pode até mesmo fazer isso com intervalos de células (os intervalos devem ser do mesmo tamanho):
Range("A1:A5").Value = Range("B1:B5").Value
Comparar Valores de Células
Você pode comparar os valores das células usando os operadores de comparação padrão.
Teste se os valores das células são iguais:
MsgBox Range("A1").Value = Range("B1").Value
Retornará VERDADEIRO se os valores das células forem iguais. Caso contrário, FALSO.
Você também pode criar uma função Se para comparar os valores das células:
If Range("A1").Value > Range("B1").Value Then
Range("C1").Value = "Maior do que"
Elseif Range("A1").Value = Range("B1").Value Then
Range("C1").Value = "Igual"
Else
Range("C1").Value = "Menor do que"
End If
Você pode comparar textos da mesma maneira (Lembre-se que VBA é sensível a maiúsculas e minúsculas)