Este tutorial irá ensiná-lo a interagir com Valores de Célula usando VBA.
Definir o valor da célula
Para definir um Valor de Célula, use a propriedade Value do objeto Range ou Cells.
Range.Value & Cells.Value
Existem duas maneiras de referenciar célula (s) em VBA:
- Objeto de alcance - Faixa (“A2”). Valor
- Objeto de Células - Células (2,1) .Valor
O objeto Range permite que você faça referência a uma célula usando a notação “A1” padrão.
Isso definirá o valor do intervalo A2 = 1:
1 | Intervalo ("A2"). Valor = 1 |
O objeto Cells permite que você faça referência a uma célula por seu número de linha e número de coluna.
Isso definirá o valor do intervalo A2 = 1:
1 | Células (2,1). Valor = 1 |
Observe que você insere o número da linha primeiro:
1 | Células (Row_num, Col_num) |
Definir vários valores de células de uma só vez
Em vez de fazer referência a uma única célula, você pode fazer referência a um intervalo de células e alterar todos os valores das células de uma vez:
1 | Intervalo ("A2: A5"). Valor = 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 string de texto. No VBA, todo o texto deve estar entre aspas:
1 | Intervalo ("A2"). Valor = "Texto" |
Se você não colocar o texto entre aspas, o VBA pensará que você está se referindo 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
1234 | Dim strText as StringstrText = "String de Texto"Intervalo ("A2"). Valor = strText |
Obter valor da célula
Você pode obter os valores das células usando a mesma propriedade Value que usamos acima.
Obtenha valor ActiveCell
Para obter o valor ActiveCell e exibi-lo em uma caixa de mensagem:
1 | MsgBox ActiveCell.Value |
Atribuir o valor da célula à variável
Para obter um valor de célula e atribuí-lo a uma variável:
123 | Dim var como variantevar = intervalo ("A1"). Valor |
Aqui usamos uma variável do tipo Variant. Variáveis variantes podem aceitar qualquer tipo de valor. Em vez disso, você pode usar um tipo de variável String:
123 | Dim var as Stringvar = intervalo ("A1"). Valor |
Um tipo de variável String aceitará valores numéricos, mas armazenará os números como texto.
Se você sabe que o valor de sua célula será numérico, você pode usar um tipo de variável Double (variáveis Double podem armazenar valores decimais):
123 | Dim var as Doublevar = intervalo ("A1"). Valor |
No entanto, se você tentar armazenar um valor de célula contendo texto em uma variável dupla, receberá um erro de incompatibilidade de tipo:
Outros exemplos de valor de célula
Copiar 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):
1 | Intervalo ("A1"). Valor = Intervalo ("B1"). Valor |
Você pode até fazer isso com intervalos de células (os intervalos devem ter o mesmo tamanho):
1 | Intervalo ("A1: A5"). Valor = Intervalo ("B1: B5"). Valor |
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:
1 | Intervalo de MsgBox ("A1"). Valor = Intervalo ("B1"). Valor |
Retornará TRUE se os valores das células forem iguais. Caso contrário, FALSE.
Você também pode criar uma instrução If para comparar os valores das células:
12345678910111213 | Se Intervalo ("A1"). Valor> Intervalo ("B1"). Valor, entãoIntervalo ("C1"). Valor = "Maior que"Elseif Intervalo ("A1"). Valor = Intervalo ("B1"). Valor DepoisIntervalo ("C1"). Valor = "Igual"OutroIntervalo ("C1"). Valor = "Menor que"Fim se |
Você pode comparar o texto da mesma maneira (lembre-se de que o VBA diferencia maiúsculas de minúsculas)