繁体   English   中英

Excel 365 VBA 日期在自定义自动过滤器中不起作用

[英]Excel 365 VBA date not working in custom autofilter

我创建了以下代码来过滤表 (GrafanaPMT),以过滤今天未来日期之后的所有日期。 前几行清除当前过滤器,最后一行将日期插入 excel 表,但不显示任何行(许多行的日期为未来)。

我也尝试过对今天的日期进行硬编码,尽管已添加到自定义自动过滤器中,但它也不会显示任何行。

如果我在过滤器中实际输入“19/08/2021”,则会显示超过 1000 行。

任何帮助将非常感激。

\[自动过滤器中显示的日期] 1

Sub MS4_not_6_over_3m()
'
' MS4_not_6_over_3m Macro
'
    Dim today As Date
    
    Sheets("Data").Select
    ActiveSheet.ListObjects("GrafanaPMT").Range.AutoFilter Field:=5, Criteria1:="SEAL-RAN"
    Rows("10:10").Select
    ActiveWorkbook.Worksheets("Data").ListObjects("GrafanaPMT").Sort.SortFields.Clear
    ActiveSheet.ShowAllData

    ActiveSheet.ListObjects("GrafanaPMT").Range.AutoFilter Field:=11, Criteria1:=">=" & Format(today, "dd/mm/yyyy")

End Sub

尝试这个

Sub MS4_not_6_over_3m()
    Dim ws As Worksheet: Set ws = Sheets("Data")
    Dim ol As ListObject: Set ol = ws.ListObjects("GrafanaPMT")
    Dim olCol As Integer
    
    ' clear table filters
    If ol.AutoFilter.FilterMode Then ol.AutoFilter.ShowAllData
    
    ' Filter column 'mydate'
    olCol = ol.ListColumns("myDate").Index  ' Put here the name of your column
    ol.Range.AutoFilter Field:=olCol, Criteria1:=">=" & Format(Date, "mm/dd/yyyy")
    
    ' OR
    ' ol.Range.AutoFilter Field:=olCol, Criteria1:=">=" & CDbl(Date)
End Sub

谢谢大家的建议,我使用了 Ron Rosenfeld 的解决方案并且效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM