Следующий код должен помочь вам достичь ожидаемых результатов: когда вы вставляете новую строку, она добавляет формулу SumIf к этой строке, суммируя значения из столбца D, и, наконец, она будет делать то же самое для последней строки на вашем листе:
Sub InsertRowsAtValueChangeColumnD()
'--- INSERT CLEAR ROWS
Dim X As Long, LastRow As Long
Const DataCol As String = "D"
Const StartRow = 2
LastRow = Cells(Rows.Count, DataCol).End(xlUp).Row
Application.ScreenUpdating = False
For X = LastRow To StartRow + 1 Step -1
If Cells(X, DataCol).Value <> Cells(X - 1, DataCol).Value Then
Rows(X).Insert
Cells(X, "K").FormulaR1C1 = "=SUMIF(C[-7],R[-1]C[-7],C[-7])"
End If
Next
LastRow = Cells(Rows.Count, DataCol).End(xlUp).Row
Cells(LastRow + 1, "K").FormulaR1C1 = "=SUMIF(C[-7],R[-1]C[-7],C[-7])"
Application.ScreenUpdating = True
End Sub