我在宏中使用以下代码对选定的列进行排序
Range("A14:CE" & lastRow).Sort key1:=Range(Cells(14, Col), Cells(lastRow, Col)),
_Order1:=xlAscending, Header:=xlNo, key2:=Range("C14:C" & lastRow), Order2:=xlAscending,
_Header:=xlNo
我刚刚注意到,当单元格末尾有数字时,这可能会表现得很奇怪,就像这个例子一样
左列中的数据将像右列中一样从 A 到 Z 排序,这不是我想要的。 我想要 1 后 2,而不是 10! 我检查了一下,这就是Excel本身的排序方式。除了将文本更改为 FM-001 之外,还有其他方法可以防止这种情况发生吗?
最佳答案
是的,斯科特是对的,您需要 2 个单独的列来存放文本和数字,然后对它们进行排序;
如果这是唯一的组合,那么您可以使用
=LEFT(A1,2)
=RIGHT(A1,LEN(A1)-5)
如果您没有共同的模式,请先输入文字,然后输入数字
=LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
=RIGHT(A4,LEN(A4)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A4&"0123456789"))+1)
关于excel - 对具有字符和数字的键进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42206385/