vba - 如何选择表底部与今天日期匹配的所有行
问题描述
我想在 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
推荐阅读
- r - 如何根据连接条件从 R 中的两个不同数据框中添加两列
- apache-flink - 将对象节点转换为 json 节点
- ios - 不能符合来自objective-c的快速委托协议
- javascript - 第三方脚本在页面刷新之前不会加载
- caching - Prestashop 模块卡在维护模式
- azure-cosmosdb - Cosmos DB Autopilot 未使用分区上的吞吐量分布
- algorithm - 复杂矢量图像的数学方程是如何计算的?
- docker - Netcat (nc / ncat) 在 Docker 中不能被中断
- python - 如何在功能性 Keras 模型中将前一层的权重作为输入传递给自定义层的调用函数?
- css-paged-media - 将@page 与其他选择器结合使用