Pular para o conteúdo

Padrão FormulaR1C1 no Excel

Essa é pra aqueles que já tem certa familiaridade com macros, especialmente o gravador de macros do Excel, que é uma baita de uma mão na roda, uso direto.

Quand usamos o gravador de macros as fórmulas no código ficam no padrão FormulaR1C1 que difere do padrão que estamos mais acostumados a utilizar no Excel, que seria o A1.

Aqui você verá como ler o padrão R1C1 e como convertê-lo para o padrão A1.

Com preguiça de ler? Assista ao vídeo

Como ler o padrão FormulaR1C1?

O R de R1C1 significa linha (do inglês row), e o C significa coluna. O número a seguir se refere a posição, R1 seria o equivalente a Linha 1 ou primeira linha, e C1 seria primeira coluna.

Desta forma, quando vemos R1C1 a célula que está sendo referenciada é a A1 pois é a célula que está na primeira linha (R1) e na primeira coluna (C1)

Tipo de referência no padrão R1C1

Existem 2 tipos de referência no Excel, relativa e absoluta, você certamente já sabe disso, só coloquei em nomes bonitos aqui. A referência relativa é quando não congelamos as células na nossa fórmula utilizando o $, e a referência absoluta é justamente o contrário.

Assim como utilizamos $ no padrão de fórmula A1, também utilizamos um símbolo no padrão R1C1 para identificar quando a referência é relativa ou absoluta.

Referência relativa em R1C1

Ao utilizarmos o gravador de macros e escrevermos em A1, a função:

=SOMA(B1:B3)

O código de macro gerado será:

ActiveCell.FormulaR1C1 = “=SUM(RC[1]:R[2]C[1])”

Quando rodarmos esta macro o resultado irá mudar dependendo de qual for a célula ativa (ActiveCell), pois se trata de uma referência relativa.

RC[1] = Equivale a célula que estiver na mesma linha da célula ativa, porém a uma coluna a mais, ou para a direita, representado pelo [1]. Ao rodar esta macro tendo a célula A1 RC[1] será a célula B1, pois está na mesma linha de A1 porém a uma coluna a mais.

R[2]C[1] = Equivale a célula que estiver duas linhas abaixo [2] da célula ativa, e a uma coluna a mais [1]. Caso a macro seja rodada com a célula A1 selecionada, R[2]C[1] será a célula B3 pois está a duas linhas abaixo de A1 e a uma coluna a mais.

A mesma macro a ser rodada com a célula C5 selecionada trará como resultado =SOMA(D5:D7)

Referência absoluta em R1C1

Ao utilizarmos o gravador de macros e escrevermos em A1, a função:

=SOMA($B$1:$B$3)

O código de macro gerado será:

ActiveCell.FormulaR1C1 = “=SUM(R1C2:R3C2)”

Quando rodarmos esta macro o resultado sempre o mesmo, independente de qual for a célula ativa, pois congelamos os intervalos tanto das linhas quanto das colunas.

R1C2 = Equivale a célula que estiver na primeira linha (R1) e na segunda coluna (C2), logo a célula B1.

R3C2 = Equivale a célula que estiver na terceira linha (R3) e na segunda coluna (C2), sendo assim a célula B3.

Ao rodar esta macro, independente da célula ativa, o resultado será =SOMA($B$1:$B$3)

Convertendo R1C1 para A1

Embora não seja possível alterar a forma com que o gravador de macros funciona, você ainda pode escrever suas macros no padrão A1, ou converter seus códigos FormulaR1C1 para o padrão com o qual estamos mais familiarizados.

Para isso basta alterar a função que chamamos na hora de colocar a fórmula em nossa macro. Trocamos o:

ActiveCell.FormulaR1C1 = “=SUM(RC[1]:R[2]C[1])”

Para

ActiveCell.Formula = “=SUM(B1:B3)”

Marcações:

Deixe um comentário ou uma dúvida