Option Explicit
Sub TEST2()
Dim ar, i&
Application.ScreenUpdating = False
ar = Range("B3", Cells(Rows.Count, "G").End(xlUp))
ReDim Preserve ar(1 To UBound(ar), 1 To UBound(ar, 2) + 1)
For i = 1 To UBound(ar)
ar(i, UBound(ar, 2)) = CDate(Replace(ar(i, 1), ".", "-"))
Next i
bSort ar, 1, UBound(ar), 1, UBound(ar, 2), UBound(ar, 2)
[B3].Resize(UBound(ar), UBound(ar, 2)) = ar
Application.ScreenUpdating = True
Beep
End Sub
Function bSort(ar, iFirst&, iLast&, iLeft&, iRight&, iKey&, Optional isOrder As Boolean = True)
Dim i&, j&, k&, vTemp
For i = iFirst To iLast - 1
For j = iFirst To iLast + iFirst - 1 - i
If ar(j, iKey) <> ar(j + 1, iKey) Then
If ar(j, iKey) < ar(j + 1, iKey) Xor isOrder Then
For k = iLeft To iRight
vTemp = ar(j, k): ar(j, k) = ar(j + 1, k): ar(j + 1, k) = vTemp
Next
End If
End If
Next j
Next i
End Function |