Arrays 如何在excel中合并重复行并求和值3列

Arrays 如何在excel中合并重复行并求和值3列,arrays,vba,duplicates,Arrays,Vba,Duplicates,各位好,, 我在创建VBA excel以复制数据时遇到问题 如何在excel中合并重复行并求和值3列 多谢各位 在OP澄清后编辑 试试这个 维护原始数据的解决方案: Option Explicit Sub main() With Worksheets("Sheet01") '<== change "Sheet01" as per your actual sheet name With .Range("A1:C1").Resize(.Cells(.rows.Count, 1).

各位好,, 我在创建VBA excel以复制数据时遇到问题

如何在excel中合并重复行并求和值3列


多谢各位

在OP澄清后编辑

试试这个

维护原始数据的解决方案:

Option Explicit

Sub main()

With Worksheets("Sheet01") '<== change "Sheet01" as per your actual sheet name

    With .Range("A1:C1").Resize(.Cells(.rows.Count, 1).End(xlUp).Row)
        .Copy
        With .Offset(, .Columns.Count + 1)
            .PasteSpecial xlPasteAll ' copy value and formats
            .Columns(2).Offset(1).Resize(.rows.Count - 1, 2).FormulaR1C1 = "=SUMIF(C1,RC1,C[-" & .Columns.Count + 1 & "])"
            .Value = .Value
            .RemoveDuplicates 1, xlYes
        End With
    End With

End With
End Sub
选项显式
副标题()

对于工作表(“Sheet01”)”此表使用删除重复项:

Sub dupremove()
Dim ws As Worksheet
Dim lastrow As Long

Set ws = Sheets("Sheet1") ' Change to your sheet

With ws
    lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
    With .Range("B2:C" & lastrow)
        .Offset(, 4).FormulaR1C1 = "=SUMIF(C1,RC1,C[-4])"
        .Offset(, 4).Value = .Offset(, 4).Value
    End With
    With .Range("A1:A" & lastrow)
        .Offset(, 4).Value.Value = .Value
    End with
    .Range("E1:G" & lastrow).RemoveDuplicates 1, xlYes

End With

End Sub

您想在vba或直接公式中执行此操作吗?两者都有可能我想在VBA Excel中实现。谢谢你的信息谢谢你的好意。如果我想保留原始数据。通过添加数据处理。放在原始数据的一侧,看图片。再次感谢Scott Craner的解决方案,您只需将
RC[-26]
替换为
C[-26]
,实际上我看到Scott Craner的解决方案也没有维护原始数据。但它有非常好的想法。所以我拿着它们编辑了我的帖子,添加了一个维护原始数据的解决方案。归功于斯科特!很好的解决方案。只需要用
C[-26]
替换
RC[-26]
。在OP澄清后,我采纳了你的想法来编辑我的答案,以保持原始数据。所以感谢你@用户3598756谢谢你的帮助。我已编辑以移动到侧面。@GpowerGravityPower请参见“立即编辑”将其张贴到侧面。
Sub dupremove()
Dim ws As Worksheet
Dim lastrow As Long

Set ws = Sheets("Sheet1") ' Change to your sheet

With ws
    lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
    With .Range("B2:C" & lastrow)
        .Offset(, 4).FormulaR1C1 = "=SUMIF(C1,RC1,C[-4])"
        .Offset(, 4).Value = .Offset(, 4).Value
    End With
    With .Range("A1:A" & lastrow)
        .Offset(, 4).Value.Value = .Value
    End with
    .Range("E1:G" & lastrow).RemoveDuplicates 1, xlYes

End With

End Sub