按字母顺序/升序排列逗号分隔列表的函数/公式
例如,我有一个单元格有价值:
1133,1131,1141,1142,1143,1151,1132,1181
我怎么得到这个升序呢?
1131,1132,1133,1141,1142,1143,1151,1181
这样做的工作与很多不同的事情,所以希望find一个公式或VBAfunction驱动的解决scheme。
Option Explicit Function sortingHat(str As String, _ Optional delim As String = ",") Dim a As Long, b As Long, arr As Variant, tmp As Variant 'split the string into an array arr = Split(str, delim) 'sort the array For a = LBound(arr) To UBound(arr) - 1 For b = a + 1 To UBound(arr) If arr(b) < arr(a) Then tmp = arr(a) arr(a) = arr(b) arr(b) = tmp End If Next b Next a 'join the array into a string sortingHat = Join(arr, delim) End Function
考虑:
Function MySort(txt As String, Sep As String) As String Dim a With CreateObject("System.Collections.ArrayList") For Each a In Split(txt, Sep) .Add Trim$(CStr(a)) Next .Sort MySort = Join(.ToArray, Sep) End With End Function
注意:
按照您的标题要求,该函数执行字母sorting而不是数字sorting。