我有一张包含多个列的工作表;在这些列中,我有一个包含日期的列。我想对包含日期的列进行排序,并自动对表格进行排序。
答案 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中调整条件语句。