总结重复的行,然后删除所有重复项

我有一个Excel工作表,其中一些行可能包含与其他行相同的数据,除了一列。 我需要一个macros来对该列中的所有值进行求和,并删除所有重复项,除了第一个包含其余项的总和之外。 例如:

ABCD 1 abcd 2 njio 3 abcp 4 vyeb 5 abcm 6 . . . . 

在这种情况下,代码必须删除第3行和第5行(因为它们是第1行的“重复项”),并将第1行的D列replace为d + p + m。 我设法想出了以下代码:

 For j = 1 To Range("A1").End(xlDown).Row For i = j + 1 To Range("A1").End(xlDown).Row If Cells(j, 1).value = Cells(i, 1).value And Cells(j, 2).value = Cells(i, 2).value And Cells(j, 3).value = Cells(i, 3).value Then Cells(j, 6) = Cells(i, 6).value + Cells(j, 6).value Rows(i).Delete Shift:=xlUp i = i - 1 End If Next i Next j 

但是,正如你可能已经注意到的那样,这是非常低效和基本的。 任何更好的想法?

这是一个简单的代码:

 Sub remdup() Dim ws As Worksheet Dim lastrw As Long Set ws = ActiveSheet lastrw = ws.Range("A" & ws.Rows.Count).End(xlUp).Row ws.Range("E1:E" & lastrw).FormulaR1C1 = "=SUMIFs(C[-1],C[-4],RC[-4],C[-3],RC[-3],C[-2],RC[-2])" ws.Range("D1:D" & lastrw).Value = ws.Range("E1:E" & lastrw).Value ws.Range("E1:E" & lastrw).ClearContents With ws.Range("A1:D" & lastrw) .Value = .Value .RemoveDuplicates Array(1, 2, 3), xlNo End With End Sub