使用日期列作为主键对工作表进行排序

时间:2015-04-15 19:32:35

标签: excel vba excel-vba

我有一张包含多个列的工作表;在这些列中,我有一个包含日期的列。我想对包含日期的列进行排序,并自动对表格进行排序。

1 个答案:

答案 0 :(得分:0)

假设在A列和A1当前区域的最后一个使用列之间的第二行中可以找到(并用VBA' s IsDate function标识)日期,那么这应该找到第一列有日期并按升序排序。

Sub sort_by_first_date()
    Dim iDateCol As Date
    With ActiveSheet
        With .Cells(1, 1).CurrentRegion
            For iDateCol = 1 To .Columns.Count
                If IsDate(.Cells(2, iDateCol)) Then Exit For
            Next iDateCol
            If iDateCol <= .Columns.Count Then  'make sure a column with dates was found
                .Cells.Sort Key1:=.Columns(iDateCol), Order1:=xlAscending, _
                            Orientation:=xlTopToBottom, Header:=xlYes
            End If
        End With
    End With
End Sub

如果您需要进一步查看第二行,则需要在For ... Next中调整条件语句。