如何按包含数字的列按升序或降序对行进行排序? 我知道如何在VBA中使用过滤器和使用排序功能进行排序。但它按字母顺序排序,而不是按数字排序。
到目前为止,我已经完成了。但仍然按字母顺序排序。
Sub sortdata()
Dim LastRow As Integer
NoOfRows = Sheets("RawData").Range("A" & Rows.Count).End(xlUp).Row
Sheets("RawData").Rows("2:" & NoOfRows).NumberFormat = "0"
Sheets("RawData").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Sheets("RawData").Sort
.SetRange Range("A1:B" & NoOfRows)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
答案 0 :(得分:1)
我更喜欢Range.Sort方法:
[编辑2]: 我已添加.TextToColumns行以编程方式处理存储为文本问题的数字
Sub sortdata()
Dim ws As Worksheet
Set ws = Sheets("RawData")
With ws.Range("A1:B" & ws.Cells(Rows.Count, "A").End(xlUp).Row)
Intersect(.Cells, ws.Columns("A")).TextToColumns
.Sort Intersect(.Cells, ws.Columns("A")), xlAscending, Header:=xlGuess
End With
End Sub
[编辑]: 看完提问者的评论后:
我将举一个例子。如果列A包含此 值:1,2,55,12,14,5343,22222,9然后使用filter或者排序后 内置排序方法。值按如下排序 如下:1,12,14,2,22222,5343,9。但我需要的结果如下: 1,2,9,12,14,5334,22222。是否有内置功能?
问题是您的号码存储为文字。您需要将它们转换为数字。
选择列A - >数据 - >文字到列 - >完成
现在数字应该正确排序。