Vídeo: #03 - Curso de Macros e Excel VBA - Referência Relativa 2025
A referência relativa em uma macro do Excel significa relativa à célula atualmente ativa. Portanto, tenha cuidado com sua escolha de célula ativa - tanto quando você grava a macro de referência relativa quanto quando a executa.
Primeiro, abra o arquivo de exemplo. xlsx disponível online. Em seguida, use as seguintes etapas para gravar uma macro de referência relativa:
-
Na guia Desenvolvedor, selecione a opção Usar referências relativas.
Gravando uma macro com referências relativas. -
Certifique-se de que a célula A1 esteja selecionada.
-
Na guia Desenvolvedor, selecione Record Macro.
-
Nomeie a macro AddTotalRelative.
-
Escolha Esta pasta de trabalho para salvar a localização.
-
Clique em OK para iniciar a gravação.
-
Selecione a célula A16 e digite Total na célula.
-
Selecione a primeira célula vazia na coluna D (D16) e digite = COUNTA (D2: D15).
-
Na guia Desenvolvedor, clique em Parar gravação para parar de gravar a macro.
Neste ponto, você gravou duas macros. Tome um momento para examinar o código da sua macro recém-criada, selecionando Macros na aba Desenvolvedor para abrir a caixa de diálogo Macro. Escolha a macro AddTotalRelative e clique em Editar.
Novamente, o Editor Visual Basic abre e mostra o código que foi escrito quando gravou sua macro. Desta vez, seu código se parece com o seguinte:
Sub AddTotalRelative () ActiveCell. Offset (15, 0). Gama ("A1"). Selecione ActiveCell. FormulaR1C1 = "Total" ActiveCell. Offset (0, 3). Gama ("A1"). Selecione ActiveCell. FormulaR1C1 = "= COUNTA (R [-14] C: R [-1] C)" End Sub
Primeiro observe que o código não contém referências a intervalos de células específicas (exceto o ponto de partida, A1). Observe que, nesta macro, o Excel usa a propriedade Offset da célula ativa. Esta propriedade informa o cursor para mover um certo número de células para cima ou para baixo e um certo número de células para a esquerda ou para a direita.
Neste caso, o código de propriedade Offset informa ao Excel para mover 15 linhas para baixo e 0 colunas em frente da célula ativa (A1). Como a macro foi gravada usando uma referência relativa, o Excel não selecionará explicitamente uma célula específica como fez ao gravar uma macro de referência absoluta.
Para ver esta macro em ação, exclua a linha Total para ambas as tabelas e faça o seguinte:
-
Selecione a célula A1.
-
Na guia Desenvolvedor, selecione Macros.
-
Encontre e selecione a macro AddTotalRelative.
-
Clique no botão Executar.
-
Selecione a célula F1.
-
Na guia Desenvolvedor, selecione Macros.
-
Encontre e selecione a macro AddTotalRelative.
-
Clique no botão Executar.
Observe que esta macro, ao contrário da sua macro anterior, funciona em ambos os conjuntos de dados.Como a macro aplica os totais relativos à célula atualmente ativa, os totais são aplicados corretamente.
Para que esta macro funcione, você simplesmente precisa garantir que
-
Você selecionou a célula inicial correta antes de executar a macro.
-
O bloco de dados tem o mesmo número de linhas e colunas que os dados nos quais você gravou a macro.
