Descargue el fichero: Ordena_un_millon.xlsm
Podemos ordenar un millón de valores numéricos con VBA en un tiempo bastante aceptable.
En mi portatil (i7, 8Gb RAM) cada una de las dos macros tarda 2 segundos aproximadamente.
Sub genera_aleatorios_en_columna_A()
Dim i As Long
Dim R As Range
Dim A
Set R = Range("A1:A1000000")
A = R
Randomize
For i = 1 To 1000000
A(i, 1) = Rnd
Next i
R = A
End Sub
Sub ordena_columna_A()
Columns("A:A").Sort key1:=Range("A1"), _
order1:=xlAscending, Header:=xlNo
End Sub
Nota
La líneaR = A
equivale a
Range("A1:A1000000") = A