I'd just do something simple like this
Option Explicit
Sub Addsort()
Dim rList1 As Range, rList2 As Range, r As Range, r1 As Range
Dim ary1() As Variant, ary2() As Variant
Dim i As Long, n As Long
With Worksheets("Sheet 1")
Set rList1 = Range(.Cells(1, 1), .Cells(1, 1).End(xlDown))
End With
ary1 = Application.WorksheetFunction.Transpose(rList1)
With Worksheets("Sheet 2")
Set rList2 = Range(.Cells(1, 1), .Cells(1, 1).End(xlDown))
End With
ary2 = Application.WorksheetFunction.Transpose(rList2)
For i = LBound(ary1) + 1 To UBound(ary1)
n = 0
On Error Resume Next
n = Application.WorksheetFunction.Match(ary1(i), ary2, 0)
On Error GoTo 0
If n = 0 Then
ReDim Preserve ary2(LBound(ary2) To UBound(ary2) + 1)
ary2(UBound(ary2)) = ary1(i)
End If
Next i
With Worksheets("Sheet 2")
.Cells(1, 1).Resize(UBound(ary2), 1).Value = Application.WorksheetFunction.Transpose(ary2)
Set r = Range(.Cells(1, 1), .Cells(1, 1).End(xlDown))
Set r1 = r.Cells(2, 1).Resize(r.Rows.Count - 1, r.Columns.Count)
With .Sort
.SortFields.Clear
.SortFields.Add Key:=r1, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange r
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub