Just to let you know that Dangelor posted code to solve this problem at;

http://www.ozgrid.com/forum/showthread.php?p=145725#post145725
Here is that code:

Sub SortList()

Dim EntireList As Range

Dim MList, TestA, TestB, TestC

Dim x As Long, y As Long

'Adjust range to TopLeft cell

Set EntireList = Range("B3").CurrentRegion

EntireList.CreateNames _

Top:=True, Left:=False, Bottom:=False, Right:=False

MList = Range("masterlist")

TestA = Range("test_a")

TestB = Range("test_b")

TestC = Range("test_c")

Range("test_a").ClearContents

Range("test_b").ClearContents

Range("test_c").ClearContents

For x = 1 To UBound(TestA)

For y = 1 To UBound(MList)

If MList(y, 1) = TestA(x, 1) Then _

Range("test_a").Cells

= TestA(x, 1)

Next y

Next x

For x = 1 To UBound(TestB)

For y = 1 To UBound(MList)

If MList(y, 1) = TestB(x, 1) Then _

Range("test_b").Cells

= TestB(x, 1)

Next y

Next x

For x = 1 To UBound(TestC)

For y = 1 To UBound(MList)

If MList(y, 1) = TestC(x, 1) Then _

Range("test_c").Cells

= TestC(x, 1)

Next y

Next x

TestA = Range("test_a")

TestB = Range("test_b")

TestC = Range("test_c")

For x = 1 To UBound(MList)

If IsEmpty(TestA(x, 1)) And _

IsEmpty(TestB(x, 1)) And _

IsEmpty(TestC(x, 1)) Then _

Range("masterlist").Cells(x).ClearContents

Next x

EntireList.Sort Key1:=EntireList.Cells(1), Order1:=xlAscending, Header:=xlYes

End Sub