Mi granito de arena; Una forma más rápida de hacer el Swapnumbers() sin usar variable temporal:
También acelerararias un poco si enlazases RtlMoveMemory() directamente desde NTDLL y no desde KERNEL32
Código
Private Sub Swapnumbers(ByRef l1 As Long, ByRef l2 As Long) l1 = l1 Xor l2 l2 = l2 Xor l1 l1 = l1 Xor l2 End Sub
También acelerararias un poco si enlazases RtlMoveMemory() directamente desde NTDLL y no desde KERNEL32

Que buena idea!!!
Lo voy a tener en cuenta, puede servir mucho.
GRACIAS POR LEER!!!