如果我在单元格A2中有值= 2,4,8,6,12,19,18,23,35,78,101,38,30,205,2我想按单元格B2中的最小到最大或最大到最小排序。那么我想要的结果应该是= 2,2,4,6,8,12,19,18,23,30,35,38,78,101,101,205或(大到小== 205,101,101,78,38,35,30,23, 18,19,12,8,6,4,2,2如果我有textvaluse,例如A3 = WPN / 01,AFF / 02,PROP / 4,ENG / 03,那么我想按字母顺序对我想要的结果进行排序单元格B3 = AFF / 02,ENG / 03,PROP / 4,WPN / 1
以下功能将适用于数字,文本和字母数字(数字和文本均包含)字符串。
Function BubbleSortMix(myString As String, deLmt As String)
Dim arr
arr = split(Trim(myString), deLmt)
Dim strTemp As String
Dim i As Long
Dim j As Long
Dim lngMin As Long
Dim lngMax As Long
lngMin = LBound(arr)
lngMax = UBound(arr)
For i = lngMin To lngMax - 1
For j = i + 1 To lngMax
If IsNumeric((arr(i))) = True And IsNumeric((arr(j))) = True Then
If Val(arr(i)) > Val(arr(j)) Then
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Else
If (arr(i)) > (arr(j)) Then
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
End If
Next j
Next i
BubbleSortMix = Join(arr, deLmt)
End Function