在VBA中创建绝对但可变的引用

时间:2016-03-24 15:54:14

标签: excel vba excel-vba

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

我正在创建一个快速宏,它会累积值。我经常使用= SUM($ A $ 2:A2)并自动填充以获得累积总和。虽然我可以非常快速地做到这一点,但我必须每天在不同的表格中进行几次。我的目标是让绝对的$ A $ 2引用根据当前选定的单元格变化。

因此,我假设我正在尝试将此公式添加到单元格B2中。我知道我能做到:

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

但是,如果我的起始单元格不是B2而且我试图在各列中累计求和数据,则此公式无法使用。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

但要获得变量,你可以做到

    var = (ActiveCell.Column - 1)

答案 1 :(得分: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()生成单元格的地址"就在左边"。