Maybe it isn't that slow:
Dim ary as Variat
ary = Activesheet.Range("A1").CurrentRegion
worksheets.Add
Range("A1").resize(ubound(ary,1)-lbound(ary,1)+1, _
Ubound(ary,2)-lbound(ary,2)+1).Value = Ary
Range("A1").CurrentRegion.Sort _
Key1:=Range("A1"), Order1:=xlAscending, _
Key2:=Range("B1"), Order1:=xlAscending, _
Header:=xlNo
ary = Range("A1").CurrentRegion
Application.DisplayAlerts = False
activesheet.Delete
Application.DisplayAlerts = True
I don't know if what techniques you use, so the above may be old hat to you,
but then again, maybe it isn't.
I have never seen an algorithm posted to do multiple keys. I suspect the
algorithm is to do the sort on the first key, then loop through the array
and identify the rows that are identical in the first key position and pass
in these arguments to the sort routine to sort this subset on the second
key. The quicksort algorithm I have seen has parameters to identify a
subsection of the array.
You can search on
http://groups.google.com, go to advanced search, search
on quicksort and Rech, this newsgroup, ogilvy as author. Restrict to May
2003 to present or use this link
http://tinyurl.com/yv6tp