【问题标题】:Filter data according to today's date and specific time range根据今天的日期和特定时间范围过滤数据
【发布时间】:2019-11-25 07:55:40
【问题描述】:

我的 Excel 表上有一组每天都会刷新的数据。 我需要每天通过 excel VBA 在 0730 到 1930 之间自动将系统日期过滤为 E 列上的今天日期和 F 列上的系统时间。 我该怎么做?

我尝试过使用

Sub DateNTimeFilter()

Dim DateToday As Date
DateToday = Today()

Selection.AutoFilter
ActiveSheet.Range("E1:E").Autofilter Field=5, Operator:=x1Filtervalues, Criteria:=TodayDate

【问题讨论】:

  • 你试过什么代码?请将其包含在您的问题中。
  • 已添加。请告知。我是新手。
  • 您的代码有什么问题?有什么错误吗?如果是在哪一行? • 请注意,Range("E1:E") 不是有效地址,因此无法使用。 • 您是否尝试过使用宏重新编码器来查看代码的外观?
  • 你声明了一个Dim DateToday As Date,但试图使用另一个东西Criteria:=TodayDate

标签: excel vba filter excel-formula autofilter


【解决方案1】:

您发布的代码存在许多问题。

全部清理后应该是这样的:

Sub DateNTimeFilter()

Sheet1.Range("A:E").AutoFilter Field:=5, Operator:=xlFilterValues, Criteria1:=Format(Date,"dd/mm/yyyy")

End Sub

首先,Today() 不是标准的 VBA 函数,除非您编写了代码。请改用Date

你也暗淡DateToday,但在你的自动过滤器中使用TodayDate

您还启动了自动过滤器两次,一次用于选择,一次用于您的活动表范围 E1:E。第一位是多余的,可以省略。

您的E1:E 范围不正确,请使用E:E 或完全忽略它。由于您使用 field:=5 已经指示第 5 列 (E)。

您拼错了xlFilterValues,并忘记指定Criteria1,因为您总是需要指定条件 1 或 2。

如果您只使用今天的日期,则无需进行计算,因此您可以将其直接插入自动过滤器。我唯一要添加的是format 声明来清理它并匹配您的日期编写方式。

编辑:要添加开始和结束时间比这更具挑战性,但下面应该做到这一点。

Sub DateNTimeFilter()
Dim in_time As Double, out_time As Double

in_time = Date + TimeValue("07:30")
out_time = Date + TimeValue("19:30")

Sheet1.Range("A:A").AutoFilter Field:=1, Operator:=xlAnd, Criteria1:=">=" & in_time, Criteria2:="<=" & out_time

End Sub

【讨论】:

  • 您说得对,先生!谢谢它按你说的工作!那么我该如何编写代码来过滤 0730-1930 之间的时间呢?如何设置 2 个标准以及时间应该是什么格式?
  • 在日期中添加时间有点挑剔。我已经更新了我的答案。
  • 我的日期在 E 列,时间在 F 列,所以自动筛选字段可以是 5 还是 6?
  • 在这种情况下,最好一个接一个地运行两个单独的自动过滤器。首先将字段 5 作为您的日期作为我的原始答案,然后将字段 6 作为我的编辑,标准如下:Criteria1:="&gt;=" &amp; TimeValue("07:30")
  • 现在我的代码是 Sub DateNTimeFilter() Dim DateToday As Date DateToday = Date Sheet1.Range("A1:E1").AutoFilter Field:=5, Operator:=xlFilterValues, Criteria1:=Format (日期, "dd/mm/yyyy") Range("F1:F1").NumberFormat = "hh:mm" Sheet1.Range("A1:F1").AutoFilter Field:=6, Criteria1:=">= " & TimeValue("07:30"), Operator:=xlAnd, Criteria2:="=
猜你喜欢
  • 1970-01-01
  • 2021-02-11
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 2016-11-25
  • 2020-02-15
相关资源
最近更新 更多