我有一组使用“主要任务”和“子任务”的数据。我想根据子任务ID值对主要任务进行小计。每次我添加行如果我不添加在该部分的中间,总和公式不会更新。是否有可以为我更新总和的代码?
以下是我的数据示例。假设我在第4行和第4行之间添加一行。 5,任务ID为“1.4”我希望B2中的总和公式更新。
也许我可以将“B”列设置为使用worksheetfuncion.left
插入总和公式?
Sub test()
Dim rng As Range
Dim r As Range
Set rng = Range("A2:A15")
For Each r In rng
If Left(r, 1) = Left(r.Offset(-1), 1) Then
r.Offset(0, 5) = worksheetfunction.Sum( NEED HELP HERE
End If
Next r
End Sub
编辑问题:
我想运行一个代码,只要ID父级发生更改,就会在B列中添加总和公式。即B2将=SUM(A3:A4)
和B5 =SUM(A6:A8)
解决:
想通了,但这个问题暂时搁置了。
工作代码在这里:
Sub subTotals()
'
Dim rng As Range
Dim lngCounter As Long
Dim list As String
Set rng = Range("A2:A15")
'loops reverse order
For lngCounter = rng.Cells.Count To 1 Step -1
'uses left function to compare ID with one above. if it's the same it will add to string list
If Left(rng(lngCounter), 1) = Left(rng(lngCounter).Offset(-1), 1) Then
list = list & "," & rng(lngCounter).Offset(, 1).Address
'if first character of ID is different it will sum entier list of addresses
Else
rng(lngCounter).Offset(0, 1).Formula = "=Sum(" & list & ")"
list = vbNullString
End If
Next lngCounter
End Sub