将总计添加到条件的最后一行

时间:2019-10-23 14:05:57

标签: excel vba

我正在尝试建立一个简单的宏,以基于A列的扩展数添加B列的总数。使用VBA,我有以下代码:

Sub SpacingTotals()
    Dim Rng As Range, Dn As Range, Temp As Range

    Set Rng = Range("A2", Range("A" & Rows.Count).End(xlUp))
    Set Temp = Rng(1)

    For Each Dn In Rng
        If Not Dn.Value = Temp Then
            Set Temp = Dn
        End If

        Dn.Offset(, 0) = Dn.Value
        Temp.Offset(, 2) = Temp.Offset(, 2) + Dn.Offset(, 1).Value
    Next Dn

End Sub

我遇到的问题更多是格式问题。我希望总计位于传播条件的最后一行,而不是第一行(参见图片)。

任何朝正确方向的推动都会受到赞赏。

Should be

1 个答案:

答案 0 :(得分:2)

这是一个使用变量total作为运行总计的版本。当下一行中的spread与当前行不匹配时,total将写在右侧列中。

Sub SpacingTotals()

    Dim total As Long

    Dim spread As Range
    For Each spread In Range("A2:A" & Range("A" & Rows.count).End(xlUp).Row)

        total = total + spread.offset(0, 1).Value2

        If spread.Value2 <> spread.offset(1, 0).Value2 Then
            spread.offset(0, 2).Value2 = total
            total = 0
        End If

    Next spread

End Sub