2016-08-22 98 views
0

您能否帮助我制作从单元格获取字符串值并按字母顺序对其字符进行排序的Excel公式?Excel公式从单元格中获取字符串值并按字母顺序对其字符进行排序

Ex。

原始细胞值: 'BACR' 排序字符单元: 'ABCR'

+4

向我们展示你已经尝试什么,在哪里,你遇到了麻烦。你使用的是什么版本的Excel? –

+0

“无限”长度的字符串,全部是否为alpha? - VBA是否可以接受? – pnuts

+0

你正在使用的功能/代码是什么? – BruceWayne

回答

1

此UDF将通过字符数字和文本字符排序:

Function sortletter(rng As Range) 
    If rng.Count > 1 Then Exit Function 
    Dim srtArr() As String 
    Dim i&, j&, k& 
    ReDim srtArr(1 To Len(rng)) 
    srtArr(1) = Mid(rng, 1, 1) 
    For i = 2 To UBound(srtArr) 
     For j = 1 To UBound(srtArr) 
      If srtArr(j) = "" Then 
       srtArr(j) = Mid(rng, i, 1) 
       Exit For 
      ElseIf IIf(Asc(Mid(rng, i, 1)) > 96, Asc(Mid(rng, i, 1)) - 32, Asc(Mid(rng, i, 1))) <= IIf(Asc(srtArr(j)) > 96, Asc(srtArr(j)) - 32, Asc(srtArr(j))) Then 
       For k = UBound(srtArr) To j + 1 Step -1 
        srtArr(k) = srtArr(k - 1) 
       Next k 
       srtArr(j) = Mid(rng, i, 1) 
       Exit For 
      End If 
     Next j 
    Next i 
    sortletter = Join(srtArr, "") 
End Function 

将这个是一个模块附加到工作簿,而不是在工作表或ThisWorkbook代码中。

然后,它可以被称为像任何其他配方

=sortletter(A1) 

enter image description here

+0

哇!你摇滚!谢谢! –

相关问题