Gravação Excel macros com referências absolutas
modo de gravação padrão do Excel é referência absoluta. Quando uma célula de referência em uma fórmula é um referência absoluta, que não se ajusta automaticamente quando a fórmula é colada para um novo local.
A melhor maneira de entender como esse conceito se aplica a macros é para testá-lo. Gravar uma macro que conta as linhas em uma planilha. (Veja a figura para um exemplo.)
Você pode encontrar o conjunto de dados de amostra usada aqui conectados.
Siga estes passos para gravar a macro:
Certifique-se a célula A1 está selecionada.
Na guia Desenvolvedor, selecione Macro Record.
Nomeie o AddTotal macro.
Escolha este livro para o local de salvamento.
Clique em OK para iniciar a gravação.
Neste ponto, o Excel está gravando suas ações.
Enquanto Excel está a gravar, selecione célula A16 e tipo total na célula.
Selecione a primeira célula vazia na coluna D (D16) e type = COUNTA (D2: D15).
Esta fórmula dá uma contagem de números de agência na parte inferior da coluna D. Você usar a função COUNTA porque os números de agência são armazenados como texto.
Clique em Parar gravação na guia do desenvolvedor para interromper a gravação da macro.
Seu somaram-post planilha.
A planilha formatada deverá ser parecido com algo como o mostrado aqui.
Para ver a sua macro na ação, exclua a linha Total você acabou de adicionar e reproduzir sua macro, seguindo estes passos:
Na guia Desenvolvedor, selecione Macros.
Localize e selecione a macro AddTotal que acabou de gravar.
Clique no botão Executar.
Se tudo correr bem, a macro reproduz suas ações a um T e dá sua mesa um total. Agora aqui é a coisa. Não importa o quão duro você tente, você não pode fazer o trabalho macro AddTotal na segunda tabela. Por quê? Porque o gravou como uma macro absoluta.
Para entender o que isso significa, examinar o código subjacente ao selecionar Macros no separador Developer. A caixa de diálogo Macro aparece.
Seleccione a macro AddTotal e clique no botão Editar. Editor do Visual Basic abre e exibe o código que foi escrito quando você gravou sua macro:
Sub AddTotal () Range ( "A16") SelectActiveCell.FormulaR1C1 = Range "Total" ( "D16") SelectActiveCell.FormulaR1C1 = "= COUNTA (R [-14] C: R [-1] C)".. End Sub
Preste especial atenção para as duas linhas de código que selecionam A16 alcance e D16 intervalo. Porque a macro foi gravado no modo de referência absoluto, Excel interpretado sua seleção gama de referências de células absolutas. Em outras palavras, não importa onde o cursor está na sua pasta de trabalho, quando você executa a macro gravada, Excel irá selecionar célula A16 e depois célula D16. Na próxima seção, você dê uma olhada no que a mesma macro parece quando gravado no modo de referência relativa.