Como inserir um valor em uma célula usando vba?
Notas principais
- A propriedade value pode ser usada em ambas as direções (você pode ler e escrever um valor de uma célula).
- Você pode consultar uma célula usando Células e Objeto de Intervalo para definir um valor de célula (para obter e editar também).
Definir valor da célula
Para definir um valor de célula, você precisa usar a propriedade “Valor” e, em seguida, definir o valor que deseja definir. Aqui usei alguns exemplos para ajudá-lo a entender isso.
1. Insira um valor em uma célula
Suponha que você precise inserir o valor “Concluído” na célula A1. Neste caso o código seria algo como abaixo:
Range("A1").Value = "Done"
Como você pode ver, primeiro defino o endereço da célula onde desejo adicionar o valor e depois a propriedade value. No final, atribuí o valor “Concluído” usando o sinal de igual “=” entre aspas duplas.
Você também pode usar a propriedade “Células”, assim como o código a seguir.
Cells(1, 1).Value = "Done"
O código acima também se refere à célula A1.
Além disso, existe outra maneira que você pode usar: não usar a propriedade value atribuindo diretamente o valor à célula.
Cells(1, 1) = "Done"
Mas é recomendado usar a propriedade value para inserir um valor em uma célula.
Agora suponha que você queira inserir um número em uma célula. Neste caso, não é necessário usar aspas duplas. Você pode escrever o código da seguinte maneira.
Range("A1") = 99
Você também pode DATE e NOW ( funções VBA ) para inserir uma data ou carimbo de data / hora em uma célula usando o código VBA.
Range("A1").Value = Date Range("A2").Value = Now
E se você quiser inserir um valor na célula ativa, o código que você precisa seria assim:
ActiveCell.Value = Date
2. Usando uma caixa de entrada
Se quiser que um usuário especifique um valor para inserir em uma célula, você pode usar uma caixa de entrada. Suponha que você queira inserir o valor na célula A1, o código ficaria assim:
Range("A1").Value = _ InputBox(Prompt:="Type the value you want enter in A1.")
No código acima, o valor da célula A1 é atribuído ao valor retornado pela caixa de entrada que retorna o valor inserido pelo usuário.
3. De outra célula
Você também pode definir o valor da célula usando o valor de outra célula. Suponha que você queira adicionar valor à célula A1 da célula B1, o código seria:
Range("A1") = Range("B1").Value
Você também pode consultar a célula B1 sem usar a propriedade value.
Range("A1") = Range("B1")
4. Defina o valor em um intervalo inteiro
Imagine que você deseja inserir valores em várias células ou em um intervalo de células em vez de uma única célula, neste caso você precisa escrever um código como abaixo:
Range("A1:A10").Value = Date Range("B1, B10").Value = Now
Na primeira linha do código você tem um intervalo inteiro da célula A1 a A10, e na segunda linha há duas células B1 e B10.
Obtenha o valor da célula
Como eu disse, você pode usar a mesma propriedade value para obter o valor de uma célula.
1. Obtenha o valor do ActiveCell
Suponha que você queira obter o valor da célula ativa, neste caso você precisa usar o seguinte código.
ActiveCell.Value = Range("A1")
No código acima, você usou a propriedade value com a célula ativa e atribuiu esse valor à célula A1.
2. Atribuir a uma variável
Você também pode obter um valor de uma célula e atribuí-lo a uma variável .
Agora no código acima você tem a variável “i” que tem data como tipo de dado . Na segunda linha do código, o valor da célula A1 é atribuído à variável.
3. Exibir em uma MsgBox
Agora imagine que você deseja exibir o valor da célula A1 usando uma caixa de mensagem . Neste caso o código seria como abaixo.
MsgBox Range("A1").Value
No código acima, a caixa de mensagem pegará o valor da célula A1 e mostrará ao usuário.
Alterar valor da célula
Você também pode fazer alterações no valor de uma célula, e aqui compartilhei alguns exemplos que podem ajudá-lo a entender isso.
1. Adicione um número a um número existente
Digamos que se você quiser adicionar um ao número que tem na célula A1, você pode usar o código a seguir.
Range("A1").Value = Range("A1").Value + 1
O código acima atribui um valor à célula A1 pegando o valor da própria célula A1 e adicionando um a ela. Mas você também pode usar VBA IF THEN ELSE para escrever uma condição a ser alterada apenas quando houver um número na célula .
If IsNumeric(Range("A1").Value) Then Range("A1").Value = Range("A1").Value + 1 End If
2. Exclua o primeiro caractere da célula
Agora, o código a seguir remove o primeiro caractere do valor da célula e atribui o restante do valor à célula.
Range("A1").Value = Right(Range("A1").Value, Len(Range("A1").Value) - 1)