Sub 飞翔排序法() Dim a, n As Long, t As Double a = [a3:a10002] ReDim b(0 To WorksheetFunction.Max(a)) As Long t = Timer For i = 1 To UBound(a) If b(a(i, 1)) = 0 Then b(a(i, 1)) = 1 Else b(a(i, 1)) = b(a(i, 1)) + 1 End If Next For i = 0 To UBound(b) For j = 1 To b(i) n = n + 1 a(n, 1) = i Next Next [i3:i10002] = a MsgBox Format(Timer - t, "0.00000" & "秒") End Sub