Excel VBA修改现有公式

时间:2013-07-13 00:27:09

标签: excel excel-vba vba

我想弄清楚如何在VBA中修改现有的等式。当前的等式是总和(A1 + A3 + A5)我正在跳过每隔一行。我有一个宏在列A的末尾添加两行,所以当添加这些新行时,我需要将该等式更新为sum(A1 + A3 + A5 + A7)。

2 个答案:

答案 0 :(得分:2)

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

例如,要对列A中的所有奇数行求和,请使用

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

答案 1 :(得分:1)

如果公式更改为=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。