返回列表 上一主題 發帖

[發問] Bubblesort 的迷思在文字+數值格式時?

回復 1# ui123


    先文字排序,再數字排序
應該可以達成你要的效果!
  1. Sub Bubblesort()
  2. Dim i, j  As Integer
  3. Dim arr, si, sj, s As Variant
  4. arr = Range("a4:a" & Cells(Rows.Count, 1).End(xlUp).Row)
  5. For i = 1 To UBound(arr)
  6.     For j = i + 1 To UBound(arr)
  7.         If arr(i, 1) > arr(j, 1) Then
  8.             s = arr(i, 1)
  9.             arr(i, 1) = arr(j, 1)
  10.             arr(j, 1) = s
  11.         End If
  12.     Next
  13. Next
  14. For i = 1 To UBound(arr)
  15.     For j = i + 1 To UBound(arr)
  16.             si = Split(arr(i, 1), "-")
  17.             sj = Split(arr(j, 1), "-")
  18.             If si(0) = sj(0) Then
  19.                 If si(1) + 1 > sj(1) + 1 Then '+1是讓"文字型的數字"變為"數字"
  20.                     s = arr(i, 1)
  21.                     arr(i, 1) = arr(j, 1)
  22.                     arr(j, 1) = s
  23.                     End If
  24.             End If
  25.     Next
  26. Next
  27. [a4].Resize(UBound(arr)) = arr
  28. End Sub
複製代碼

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題