按字母顺序/升序排列逗号分隔列表的函数/公式

例如,我有一个单元格有价值:

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 

sortingHat

考虑:

 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。