如何选择表格底部与当前日期匹配的所有行



我想在Excel中有一个VBA宏,该宏复制第10列中的值与今天的日期匹配的所有整行,并将其粘贴到另一个工作表中。鉴于表是长期排名的,则最近的日期位于表的底部,因此"查找"操作应从表的最后一行开始,以提高效率。

到目前为止,我在 VBA 中有以下代码:

Sub Test()
Dim TodaysDate As Date
Dim LastRows As Long
TodaysDate = Sheets("Sheet1").Range("B28")
LastRows = Sheets("Sheet1").Columns(10).Find(What:=TodaysDate, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
Rows(LastRows).Copy
Sheets("Sheet2").Range("A1").Paste

End Sub

如前所述,与其尝试在工作表上的某个地方找到范围的顶部和底部,不如根据标准.AutoFilter数据。这意味着您将只显示所需的数据。然后,您可以使用.SpecialCells(XlCellTypeVisible)复制屏幕上当前的所有单元格,并将它们复制到其他工作表。这是示例代码,不是根据您的需求量身定制的,但应显示以下概念:

Sub filtercophee()
With Sheet1.Range("A1:J12")
.AutoFilter Field:=10, Criteria1:="=" & DateValue(Now), Operator:=xlAnd
.SpecialCells(xlCellTypeVisible).Copy Sheet2.Range("a1")
End With
Sheet1.AutoFilterMode = False
End Sub

最新更新