按值对Excel列进行排序

按值对Excel列进行排序,excel,vba,sorting,Excel,Vba,Sorting,我有一个带有ID值的列,如下所示: 50 14G 44 2X 22 我想用VBA按“数字值”对它进行排序,所以我得到了这样一个列表 14G 22 2X 44 50 因为数字应该在字母之前,数字的相关性来自它们的位置。但是,如果使用Range().Sort,则会得到如下列表: 22 44 50 14G 2X 这就是Excel按字母顺序排序的方式。除了自己编写一个排序函数外,还有什么方法可以按照我想要的方式对其进行排序吗?如果您将所有值格式化为文本,您将能够使用排序数字和以不同方式存储为文本的

我有一个带有ID值的列,如下所示:

50
14G
44
2X
22
我想用VBA按“数字值”对它进行排序,所以我得到了这样一个列表

14G
22
2X
44
50
因为数字应该在字母之前,数字的相关性来自它们的位置。但是,如果使用Range().Sort,则会得到如下列表:

22
44
50
14G
2X

这就是Excel按字母顺序排序的方式。除了自己编写一个排序函数外,还有什么方法可以按照我想要的方式对其进行排序吗?

如果您将所有值格式化为文本,您将能够使用排序数字和以不同方式存储为文本的数字选项进行排序。这将产生您正在寻找的结果


当然,您将失去处理真数字的好处,并且必须注意查找的是寻找真数字而不是像文本那样的数字,但由于您的值已经混合,这可能不是一件坏事。

您可以使用公式
=”添加帮助器列&A1
并使用它进行排序。但是如何强制VBA脚本以文本形式查看单元格的内容?使用VBA将其转换为文本,并将's
DataOption:=xlSortNormal
选项放入。