- 帖子
- 552
- 主題
- 3
- 精華
- 0
- 積分
- 578
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-2-8
- 最後登錄
- 2024-7-9
  
|
3#
發表於 2015-7-1 11:51
| 只看該作者
回復 1# ui123
先文字排序,再數字排序
應該可以達成你要的效果!- Sub Bubblesort()
- Dim i, j As Integer
- Dim arr, si, sj, s As Variant
- arr = Range("a4:a" & Cells(Rows.Count, 1).End(xlUp).Row)
- For i = 1 To UBound(arr)
- For j = i + 1 To UBound(arr)
- If arr(i, 1) > arr(j, 1) Then
- s = arr(i, 1)
- arr(i, 1) = arr(j, 1)
- arr(j, 1) = s
- End If
- Next
- Next
- For i = 1 To UBound(arr)
- For j = i + 1 To UBound(arr)
- si = Split(arr(i, 1), "-")
- sj = Split(arr(j, 1), "-")
- If si(0) = sj(0) Then
- If si(1) + 1 > sj(1) + 1 Then '+1是讓"文字型的數字"變為"數字"
- s = arr(i, 1)
- arr(i, 1) = arr(j, 1)
- arr(j, 1) = s
- End If
- End If
- Next
- Next
- [a4].Resize(UBound(arr)) = arr
- End Sub
複製代碼 |
|