Quick sort VBA

Ordenar tabelas pode ser feito jogando numa planilha e usando ordenação por filtros.

Porém, se estivermos trabalhando em VBA na memória, é muito ruim ficar colando dados na planilha só para ordenar.

Uns anos atrás, fiz um quicksort no vba para fazer isso direto em tabelas. Você passa: a tabela, o inicio e o fim, e a coluna a ordenar. Também diz se é crescente ou não. Vide planilha aqui (https://1drv.ms/x/s!Aumr1P3FaK7jn0FQpHettougpiGb)

Sub teste()

Dim tab1 As Variant

Dim i As Integer, j As Integer

ReDim tab1(1 To 1000, 1 To 3)

For i = 1 To 1000

    For j = 1 To 3

        tab1(i, j) = Math.Rnd

    Next j

Next i

‘Ordeno pela coluna 3

QuickSortArray tab1, 1, UBound(tab1, 1), 3, “Crescente”

Range(“a1”).Resize(UBound(tab1, 1), UBound(tab1, 2)) = tab1

End Sub