在VBA中创build一个绝对但可变的引用

这里第一次海报,我一直在寻找最后一个小时没有成功,所以我转向寻求帮助…我有限的VBA知识可能是一个因素在这里。

我正在创build一个快速的macros,它将累计累加值。 我经常使用= SUM($ A $ 2:A2)和自动填充下来获得累计总和。 虽然我可以很快做到这一点,但我必须在不同的工作表中每天做好几次。 我的目标是根据当前选定的单元格,使绝对$ A $ 2的参考值变化。

所以我们假设我正在试图将这个公式添加到单元格B2中。 我知道我可以这样做:

ActiveCell.FormulaR1C1 = "=SUM(R2C1:RC[-1])"

然而,这个公式是不可用的,如果我的起始单元格是B2而我试图在各个列中累加求和数据。

是否有可能让VBA计算所选单元格和A2之间的列数,并将其用作variables来设置绝对引用? 如:

ActiveCell.FormulaR1C1 = "=SUM(R2Cvar:RC[-1])" where var is =COUNTA(R2C1:ActiveCell)+COUNTBLANK(R2C1:ActiveCell)-1

我知道上面的代码是无效的,但这是我能想到解释我想要实现的唯一方法。

你必须连接你的公式,例如

  ActiveCell.FormulaR1C1 = "=SUM(R2C" & var & ":RC[-1])" 

但是为了得到你的variables,你可以做

  var = (ActiveCell.Column - 1) 

就像是:

 Sub ytrewq() Dim s As String With ActiveCell s = .Offset(0, -1).Address(0, 0) .Formula = "=SUM($A$2:" & s & ")" End With End Sub 

Offset()生成单元格的地址“刚好在左边”。