Como escrever e ler células no VBA
No artigo anterior, vimos como declarar variáveis VBA. Neste artigo, veremos como gravar dados em células da sua planilha do Excel utilizando o VBA.
Gravar dados em células do Excel VBA
Quando nos referimos a gravar dados em células no VBA, quer dizer o mesmo que ler os dados do Excel para o VBA. No entanto, para fazer isso devemos usar as funções internas do VBA nomeadas como Cells ou Range.
Exemplo: Função Cells
O exemplo a seguir mostra como gravar os dados em uma célula da planilha usando a função Cell Object. Acompanhe os exemplos de códigos abaixo para entender melhor como funciona.
Neste exemplo, a ideia é gravar os dados na primeira célula da planilha:
Temos aqui o código apresentado na imagem acima:
Sub escrevendo_dados_em_células()
Cells(1, 1) = "Hello World" 'O primeiro valor da função Cell refere-se ao valor da linha enquanto que o segundo refere-se ao valor da coluna 'Cells(1, 1) significa primeira linha e primeira coluna.
End Sub
Observe a diferença neste próximo exemplo, onde vamos gravar os dados na primeira linha e na quarta coluna da planilha:
Temos aqui o código apresentado na imagem acima:
Sub escrevendo_dados_em_células()
Cells(1, 4) = "Hello World"
End Sub
Exemplo: Função Range
O exemplo a seguir mostra como gravar os dados na célula ou intervalo da planilha usando o objeto Range.
Neste exemplo, vamos ler os dados da primeira célula da planilha:
Temos aqui o código usado acima:
Sub escrevendo_dados_em_células()
Range("A1") = "Hello World" 'Na função Range deve ser especificado o nome da célula que deseja ler 'A é a coluna e 1 é a linha
End Sub
Exemplo: Gravar dados em outra planilha
Quando estiver gravando dados usando as funções Cells ou Range, o VBA gravará os dados na planilha ativa. Caso deseje gravar os dados em outra planilha, é necessário mencionar o nome da planilha ao escrever os dados.
O exemplo abaixo mostra como gravar a mensagem “Hello World” na célula A5 da Planilha2. Observe:
Segue abaixo o código:
Sub escrevendo_dados_em_células()
Sheets("Planilha2").Range("A5") = "Hello World" 'A parte do lado esquerdo é uma planilha a ser consultada e a parte do lado direito é o intervalo a ser lido.
End Sub
Da mesma maneira, é possível mencionar o nome da pasta de trabalho, se estiver gravando os dados em pastas diferentes.
Conclusão
Neste artigo vimos como ler e escrever dados em células do Excel usando o VBA, como também foram demostrados exemplos de como trabalhar com as funções Cells e Range no VBA. O pontapé inicial para automatizar sua planilha no Excel utilizando o VBA.
Recomendo fortemente que você tome coragem de repetir todo o passo-a-passo. Eu penso que praticar é a melhor maneira de aprender e, embora pareça simples, é preciso se acostumar a navegar entre as telas para que no futuro você possa se tornar um usuário avançado.
Eu sei que não é comum ler um artigo deste, como tutorial, e repetir para aprender, mas recomendo fortemente que você tome coragem de repetir todo o passo-a-passo. Desenvolva seu próprio método, veja o que te ajuda, implemente-o para se tornar fluente na ferramenta Excel VBA.
O site deste pessoal aqui foi referência para este artigo. O site é muitoooo bacana com várias dicas legais de programação, mas infelizmente o conteúdo está em inglês, o que não deixa de ser uma boa referência para quem conseguir acompanhar. Eu recomendo.
Por fim, termino aqui este artigo, mas deixo linkado abaixo, outros conteudos relacionados a VBA para que você fique ligado! Até a próxima.
Como Automatizar Planilha com VBA no Excel com EXEMPLOS
Como criar macro no Excel – A FORMA MAIS FÁCIL
Como declarar variáveis no VBA
Continue lendo mais sobre VBA aqui.
Como faço para ler em uma célula uma função criada na macro?
Quando coloco igual e o nome da função, ela aparece, mas desconheço a sintaxe
Olá Marcos,
Teste se a macro está sendo chamada pela célula adicionando um ponto de parada no seu código no VBA.
Leia sobre em: Como corrigir erros no código VBA Excel – DEBUG, NÃO ERRE MAIS! – https://engenheiradoexcel.com.br/debug-corrigir-erros-vba-excel/
Obrigada por ler!