【发布时间】:2019-03-21 04:37:33
【问题描述】:
我在 A 列中有日期的 Excel 工作表,我需要找到最晚日期并在该最晚日期之前的最后 7 天进行过滤。 我只在网上找到需要今天日期的 vba 代码 - 7 天,但我不能使用它,因为这些日期来自去年。
请,谢谢!
编辑:
感谢您的建议。 我试图把它放在我的 vba 代码中,但它过滤了 0 个结果。
Sub Filter()
Dim maxDate As Date
maxDate = WorksheetFunction.Max(ActiveSheet.Range("A:A"))
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:= _
">" & maxDate - 6
End Sub
由于此 VBA 宏文件管理器的日期为 dd.mm.yyyy,因此无法正常工作。 (注意最后的点),在我的情况下为 0,它应该按 dd.mm.yyyy 过滤(不带点)。我不知道如何过滤没有点
EDIT2:这对我有用。
Sub Largest()
Dim rng As Range
Dim dblMax As Double
Set rng = ActiveSheet.Range("A:A")
dblMax = Application.WorksheetFunction.Max(rng)
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:= _
">" & dblMax - 7, Operator:=xlAnd
End Sub
【问题讨论】:
-
仅供参考 - 如果您在
A1中有5/30/2018,您可以在B1中输入=A1-5以获取5/25/2018。 -
是的,使用 Excel VBA 自动筛选可能会很棘手。有些人发现循环遍历要过滤的数组更容易。有时我发现可以使用日期的数值,就像您在将日期强制为
Double时所做的那样 -
与其说“这对我有用”,为什么不发布你自己对这个问题的回答,这样这是对其他人的完整问答?