簡體   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