Excel VBA修改现有的公式

我想弄清楚如何修改VBA中的现有方程。 目前的方程是总和(A1 + A3 + A5)我跳过其他行。 我有一个macros在列A的末尾添加两行,所以当这些新行被添加时,我需要更新该公式(A1 + A3 + A5 + A7)。

更好的方法可能是使用不同的公式。

例如,要将列A所有奇数行相加,请使用

 =SUMPRODUCT(A:A*ISODD(ROW(A:A))) 

如果公式更改为=A1+A3+A5那么代码可以是:

 Range("B1").Formula = Range("B1").Formula & "+" & Range("A7").Address 

或者,没有美元符号,

 Range("B1").Formula = Range("B1").Formula & "+" & Range("A7").Address(False, False) 

针对OP的评论添加 。 如果我假设新的单元格在公式所在的上面两行,这是当前活动的单元格:

 ActiveCell.Formula = Replace(ActiveCell.Formula, ")", "," & _ ActiveCell.Offset(-2, 0).Address(False, False) & ")") 

根据需要调整值-2。