【发布时间】:2019-07-12 13:36:27
【问题描述】:
我每周都会收到一个不断增长的数据集,并且必须仅过滤过去 7 天的内容(从上周上午 11:00 开始每周更新)。我想通过 VBA 自动化整个过程,但我正在努力让日期时间自动过滤器工作。日期时间列如下所示(dd-mm-yyyy 时间):
我在 VBA 中设置了一个自动过滤器,代码如下:
Dim d1, d2, m1, m2, y1, y2 As Integer
Dim dt1, dt2 As String
d1 = Day(Date - 7)
d2 = Day(Date)
m1 = Month(Date)
y1 = Year(Date)
dt1 = d1 & "." & m1 & "." & y1
dt2 = d2 & "." & m1 & "." & y1
ActiveSheet.Range("$A$1:$CZ$99999").AutoFilter Field:=57, Criteria1:= _
">=" & dt1 & " 11:00", Operator:=xlAnd, Criteria2:="<=" & dt2
如果我让代码在工作表上运行,它将应用过滤器,但将整个工作表留空,除了顶行,如下所示:
当我现在在 EXCEL 中手动输入自动过滤器功能以检查应用了哪种过滤器时,它会完全按照我的意愿显示过滤器,并在按下“确定”时它实际应用并显示正确的值:
所以代码确实插入了正确的过滤器,但将所有单元格留空,直到我在过滤器功能中手动按“确定”。 如何解决此问题,以便代码正确应用自动过滤器并自动显示值?
我发现这个问题似乎与EXCEL国家版本有关。我正在使用德语excel,设置为英语。但我不知道这意味着什么以及如何解决这个问题。
提前感谢您的帮助。
【问题讨论】:
-
如果您单击过滤器的下拉菜单,它究竟表示它正在过滤的是什么
-
没有勾选框 --> “日期过滤器”后面的检查 --> “Between”.. --> 如果我点击它会显示正确的日期+时间(放一张图片这个问题,所以你可以看到)
标签: excel datetime filter excel-formula excel-2010