【问题标题】:Sort rows by date按日期对行进行排序
【发布时间】: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


【解决方案1】:

将您的数据放入实际表格中 - 突出显示数据并从工具栏中选择插入~表格
您的表格应命名为 Table1(您可以手动更改)。

Sub Test()

    Dim MyTable As ListObject
    Set MyTable = ThisWorkbook.Worksheets("Sheet1").ListObjects("Table1")
    
    With MyTable
        .Sort.SortFields.Clear
        .Sort.SortFields.Add2 _
            Key:=Range("Table1[MyDateColumn]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
            DataOption:=xlSortNormal 'Change MyDateColumn to the name of your date column.
            
        With .Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .Apply
        End With
    End With
    
End Sub

您不需要包含xlPinYin 方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多