繁体   English   中英

对具有可变范围的单元格求和

[英]Summing cells with a variable range

我有一张用于我办公室的工作表。 有时,一个部分需要一些额外的行,所以我创建了一个按钮来添加所述行(对于非 Excel 用户)。 该部分的底部是一个简单的 <=SUM(D82:D92)>。 这样,每当添加数据时,就会对数量进行求和。

但是,当添加新行时,求和公式保持不变。 我正在尝试将 D92 更改为 D93(等等)。 如何添加一行并更新总和公式以使其保持动态。 请对以下代码提供建议:

'botton cell in sum range
Dim BC As String
Dim rng As Range
BC = ActiveCell.Address
Set rng = Range(Range("d82"), Range(BC))
ActiveCell.Offset(1, 0).Select
ActiveCell = WorksheetFunction.Sum(rng)

编辑:修复它!

ActiveCell.Offset(1, 3).Select
ActiveCell.FormulaR1C1 = "=SUM(R82C4:R[-1]C)"

如果您不介意使用带有OFFSET的公式,您可以将单元格D93中的=SUM(D82:D92)更改为=SUM(D82:OFFSET(D93,-1,0)) 此公式将按预期更新:它将继续寻找对自身上方 1 行的引用以找到总和范围的结尾。 例如,带有Range("D93").EntireRow.Insert的 sub 会将公式推入D94 ,现在为=SUM(D82:OFFSET(D94,-1,0))


编辑:我建议OFFSET ,认为在这种情况下INDEX是不可能的,但当然可以。 使用输入D93=SUM(D82:INDEX(D82:D93,ROW(93:93)-82))相同的结果。 好处是OFFSET是一个“易失函数”,它将随着每个工作表的更改而重新计算。 使用INDEX ,您就没有这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM