Here is an example of using a recordset to sort.
option explicit
Dim myArray
Dim rst
Dim s
Dim xitem
myArray = Array("Parke Kuntz", "Jane Doe", "Mary Smith", "John Cole", "May Abbot","John Doy", "Mary Scale"
' create a recordset
Set rst = createObject("ADODB.Recordset"
' create/append the fields to the recordset
rst.Fields.Append "fullname",129,50 'AD_Char = 129 and character length is 50
rst.Fields.Append "fname",129,50
rst.Fields.Append "lname",129,50
' open the recordset
rst.Open
' insert the array into the recordset
For Each xitem in myArray
rst.AddNew
rst.Fields("fullname"

= xitem
' extract the first name from fullname
rst.Fields("fname"

= Left(rst.Fields("fullname"

, Instr(rst.fields("fullname"

," "

-1)
' extract the last name from fullname
rst.Fields("lname"

= Right(rst.Fields("fullname"

, (Len(rst.Fields("fullname"

)-Instr(rst.Fields("fullname"

," "

))
rst.Movenext
Next
rst.moveFirst
' choose the field to sort on
rst.Sort = "lname"
s = "sorted by last name"
Do until rst.EOF
s = s & vbcrlf & rst.Fields("fullname"

rst.MoveNext
Loop
msgbox s
s = "sorted by first name"
rst.MoveFirst
' choose the order of the fields you want to sort on
rst.Sort = "fname, lname"
Do until rst.EOF
s = s & vbcrlf & rst.Fields("fullname"

rst.MoveNext
Loop
msgbox s
Hope this helps,