
Option Explicit
Sub abc()
Dim a, i, j
a = Range("a1:k" & Cells(Rows.Count, "a").End(xlUp).Row + 1).Value
For i = 2 To UBound(a, 2)
a(UBound(a), i) = a(2, i)
Next
For i = 3 To UBound(a) - 1
Call bsort(a, i, UBound(a), 2, UBound(a, 2), i)
For j = 2 To UBound(a, 2)
a(i, j) = a(UBound(a), j)
Next
Next
[a1].Offset(, UBound(a, 2) + 1).Resize(UBound(a) - 1, UBound(a, 2)) = a
End Sub
Function bsort(a, first, last, left, right, key) 'lie paixu
Dim i, j, k, t
For i = left To right - 1
For j = left To right + left - 1 - i
If a(key, j) > a(key, j + 1) Then
For k = first To last
t = a(k, j): a(k, j) = a(k, j + 1): a(k, j + 1) = t
Next
End If
Next
Next
End Function