Sub test()
Dim d, A, k, t, i
Set d = CreateObject("scripting.dictionary")
A = Range("a1").CurrentRegion
For i = 3 To UBound(A)
t = A(i, 1) & "|" & A(i, 2)
d(t) = d(t) + A(i, 3)
Next i
k = d.keys: t = d.items
ReDim A(1 To d.Count, 1 To 3)
For i = 1 To UBound(A)
A(i, 1) = Split(k(i - 1), "|")(0)
A(i, 2) = Split(k(i - 1), "|")(1)
A(i, 3) = t(i - 1)
Next i
[e3:g1000] = ""
[e3].Resize(UBound(A), UBound(A, 2)) = A
End Sub
Sub test()
Dim d, A, k, t, i
Set d = CreateObject("scripting.dictionary")
A = Range("a1").CurrentRegion
For i = 3 To UBound(A)
t = A(i, 1) & "|" & A(i, 2)
d(t) = d(t) + A(i, 3)
Next i
k = d.keys: t = d.items
ReDim A(1 To d.Count, 1 To 3)
For i = 1 To UBound(A)
A(i, 1) = Split(k(i - 1), "|")(0)
A(i, 2) = Split(k(i - 1), "|")(1)
A(i, 3) = t(i - 1)
Next i
[e3:g1000] = ""
[e3].Resize(UBound(A), UBound(A, 2)) = A
End Sub