Excel VBA按数字排序,带有多个小数点

时间:2016-10-03 15:06:34

标签: excel vba excel-vba sorting

我目前正在处理一个excel文档,该文档必须按照包含数字的列中的条目对行进行排序。这些数字有三种不同的格式(例如200,200.1,200.1.01)。我目前正按文字排序,但有一个问题是两位数字出现在三位数之后。例如,如果我有三个数字21,200.1,301.01,我希望它按顺序排列,但它自然会这样结束:

200.1,21,301.01。这是当前的代码。

Sub sort_it(sheet_name)

Sheets(sheet_name).Select

max_row = last_row("") 'Last row
max_col = last_col("") 'Last column


col_range = "A5:A"

ActiveWorkbook.Worksheets(sheet_name).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(sheet_name).Sort.SortFields.Add Key:=Range(col_range & max_row), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(sheet_name).Sort
    .SetRange Range("A5:" & max_col & max_row)
    .header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With


End Sub

是否有任何简单的修复或是否需要另一种方法才能正确排序?

0 个答案:

没有答案