Sub Example()
Const VALUES As String = "2 10 11 111 201 1010 3210 300100"
'Value Type is explicitly forced to be String
Dim ValueArr() As String
ValueArr = Split(VALUES, " ")
'Bubble Sort - Loop until no further changes are neccesary
Dim IsFinished As Boolean
While Not IsFinished
IsFinished = True
Dim i As Long
For i = LBound(ValueArr) To UBound(ValueArr) - 1
' The > operator is comparing strings alphabetically because the two values are String
If ValueArr(i) > ValueArr(i + 1) Then
'Swap
Dim tmp As String
tmp = ValueArr(i)
ValueArr(i) = ValueArr(i + 1)
ValueArr(i + 1) = tmp
IsFinished = False
End If
Next
Wend
Debug.Print Join(ValueArr, " ")
'Outputs "10 1010 11 111 2 201 300100 3210"
End Sub
3条答案
按热度按时间wfauudbj1#
没有VBA,只有公式;你可以试试:
B1
中的公式:xxslljrj2#
如果VBA中有这些值,则可以通过强制它们为字符串,然后使用
<
或>
运算符来按字母顺序对它们进行排序。变量值和数字需要使用CStr
或等效运算符转换为字符串。还可以将这些值传递到String
变量中,该变量将强制其变为String
值。icnyk63a3#
排序分隔单元格
要在
Name Manager
中创建自己的LAMBDA
函数,例如SortDelimited
,您可以使用以下命令...当你在工作簿的任何地方使用它的时候,比如简单的...