我使用下面录制的宏对 L 列进行升序排序,但是必须使用 12 行代码来对某些内容进行排序似乎有点荒谬。有没有更“有效”的方法来做到这一点?
我需要它根据 L 列对整个工作表进行排序。
Sheets("Sheet1").Range("A1").End(xlToRight).AutoFilter
Sheets("Sheet1").AutoFilter.Sort.SortFields.Clear
Sheets("Sheet1").AutoFilter.Sort.SortFields.Add Key:=Range _
("L1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With Sheets("Sheet1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
最佳答案
以下行将以升序对 L 列进行排序。
Sheets("Sheet1").Sort Key1:=Range("L1"), Order1:=xlAscending
这将对整个工作表进行排序,为了仅对数据进行排序,我将声明几个变量,如下所示:
Dim lastRow As Long, lastColumn As Long, StartCell AS Range, s As Worksheet
Set s = Sheets("Sheet1")
Set StartCell = Range("A1")
lastRow = s.Cells(s.Rows.Count, StartCell.Column).End(xlUp).Row
lastColumn = s.Cells(StartCell.Row, s.Columns.Count).End(xlToLeft).Column
s.Range(StartCell, s.Cells(lastRow, lastColumn)).Sort _
Key1:=Range("L1"), Order1:=xlAscending
经过编辑以反射(reflect)包含整个工作表
关于excel - 根据列 "L"按升序对范围进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42165273/