try this only sort
Option Explicit
Sub Test()
Dim a, i As Long, ii As Long, n As Long, rw&, z As New Collection, b
a = [a1].CurrentRegion
For i = 2 To UBound(a)
On Error Resume Next
z.Add Key:=CStr(a(i, 1)), Item:=CreateObject("System.collections.sortedlist")
With z(CStr(a(i, 1)))
.Item(IIf(a(i, 3) = "" And a(i, 4) = "", UBound(a, 1) + 1000, i)) = i
End With
On Error GoTo 0
Next i
n = 1
ReDim b(1 To UBound(a), 1 To 4)
b(1, 1) = a(1, 1): b(1, 2) = a(1, 2)
b(1, 3) = a(1, 3): b(1, 4) = a(1, 4)
For i = 2 To UBound(a, 1)
b(i, 1) = a(i, 1)
b(i, 2) = a(i, 2)
Next i
For i = 1 To z.Count
For ii = 0 To z(i).Count - 1
n = n + 1
rw = z(i).getbyindex(ii)
b(n, 3) = a(rw, 3): b(n, 4) = a(rw, 4)
Next ii
n = n + 1
Next i
[h1].Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub
Bookmarks