【发布时间】:2020-10-30 20:17:19
【问题描述】:
我是 VBA 新手,我的表有问题。如果我的表格有一个标题并且日期从 A2 列开始,表格大小最多为 R。我需要一种按日期自动对行进行排序的方法。表大小不断增长,因此如果需要,如何扩展选择是可取的。
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range( _
"A2:A" & lastrow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:Q" & lastrow)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveCell.SpecialCells(xlLastCell).Select
结束子
【问题讨论】:
-
您是否尝试过录制宏并手动进行?它会给你代码,然后开始。
-
我试图录制一个宏,但是当我用 lastrow 更改值时,它会产生一个错误。能否请您解决这里的错误并自动进行排序,例如打开表格。
-
' 键盘快捷键:Ctrl+q ' ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range( _ "A2:A" & lastrow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:Q" & lastrow) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveCell.SpecialCells(xlLastCell).Select End Sub
-
当您将代码放入评论时,我无法理解您的代码。请编辑您的问题并将其放在那里。
-
您可以将您的表格变成一个实际的表格,该表格会随着您添加数据而扩展。您可以使用
Set MyTable = ThisWorkbook.Worksheets("Sheet1").ListObjects("Table1")引用该表。
标签: excel vba sorting date rows