Maybe:
Sub calvinle()
Dim i As Long
For i = Range("P" & Rows.Count).End(3).Row To 15 Step -1
If Range("P" & i) <> Range("P" & i + 1) Then Rows(i + 1).Insert
Next i
For i = 19 To 21
For Each numrange In Columns(i).SpecialCells(xlConstants, xlNumbers).Areas
SUMADDR = numrange.Address(False, False)
numrange.Offset(numrange.Count, 0).Resize(1, 1).Formula = "=SUM(" & SUMADDR & ")"
numrange.Offset(numrange.Count, 0).Resize(1, 1).Value = numrange.Offset(numrange.Count, 0).Resize(1, 1).Value
C = numrange.Count
Next numrange
Next i
nodata:
For i = Range("P" & Rows.Count).End(3).Row To 15 Step -1
If Range("P" & i) = "" Then Rows(i + 1).Insert
Next i
End Sub
Bookmarks