Excel 将总计添加到标准的最后一行

Excel 将总计添加到标准的最后一行,excel,vba,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 =

我正在尝试设置一个简单的宏,根据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
我遇到的问题更多的是格式问题。我希望总数位于排列标准的最后一行,而不是第一行(见图)

任何朝着正确方向的努力都将不胜感激


这是一个使用变量
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
Sub-SpacingTotals()
总长度
暗淡的蔓延范围
对于范围内的每个排列(“A2:A”和范围(“A”和Rows.count).End(xlUp.Row)
总计=总计+排列。偏移量(0,1)。值2
如果spread.Value2 spread.offset(1,0).Value2,则
排列偏移量(0,2)。值2=总计
总数=0
如果结束
下一次传播
端接头

这是一个使用变量
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
Sub-SpacingTotals()
总长度
暗淡的蔓延范围
对于范围内的每个排列(“A2:A”和范围(“A”和Rows.count).End(xlUp.Row)
总计=总计+排列。偏移量(0,1)。值2
如果spread.Value2 spread.offset(1,0).Value2,则
排列偏移量(0,2)。值2=总计
总数=0
如果结束
下一次传播
端接头

注意-这可能只需要一个公式就可以实现。VBA是必须的吗?你可以使用数据透视表。输入C2并复制:
=IF(A2A3,SUM($B$1:$B2)-SUM($C$1:$C1),”)
你可以编写公式,然后硬编码它的值(在范围上使用
.value
=
.value
。@BigBen哦,好主意!那就应该成功了!注意-这可能只需要一个公式就可以实现。VBA是必须的吗?你可以使用数据透视表。输入C2并复制:
=IF(A2A3,SUM($B$1:$B2)-SUM($C$1:$C1),”)
你可以编写公式,然后硬编码它的值(在范围上使用
.value
=
.value
。@BigBen哦,好主意!那就应该成功了!那正是我要找的!感谢你和其他人的帮助!那正是我要找的!感谢你和其他人的帮助!