Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Qual o significado do comando: ActiveCell.FormulaR1C1="SUM(R[-2]C:R[-1]C)"

Sub Soma() Range("A1:A3").Select Range("A3").Activate ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)" Range("A3").Select End Sub

2 respostas
solução!

Esse é o formato padrão que o VBA utiliza para montar o código quando vc grava usando o gravador de macro.

R[-1] quer dizer que ele vai pegar 1 linha acima. R[-2] quer dizer que ele vai pegar 2 linhas acima. C quer dizer que é a mesma coluna.

Logo, como a fórmula está sendo aplicada a célula ativa, que é "Range("A3")", a soma será de 2 linhas acima até a linha acima, na mesma coluna (A1:A2).

Esse trecho (ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)") , poderia ser escrito da seguinte forma:

ActiveCell.FormulaLocal = "=SOMA(A1:A2)"

muito bom!