【问题标题】:Filter dates in a table based on the current date创建一个简单的 VBA 过滤器
【发布时间】:2022-01-07 11:12:45
【问题描述】:

我一直在尝试编写一段相当简单的代码来根据当前日期动态过滤表中的日期。我在网上搜索了很多,并且得到了相互矛盾的信息,并且无法得到任何工作。具体来说,我收到以下代码(和变体)的错误 438。

我是 VBA 的新手,并且正在自学,因此对于任何基本错误深表歉意。

ActiveSheet.ListObjects.ListColumns(5).Range.AutoFilter Field:=5,Criteria1:=">=" & Date

非常感谢任何帮助。

【问题讨论】:

  • .ListObjects ...您需要通过索引:.ListObjects(1) 或名称.ListObjects("Table1") 引用特定的。
  • 也许是一个提示:使用变量:Dim tbl As ListObjectSet tbl = ActiveSheet.ListObjects("YourTableName")。然后在引用.ListColumns(5) 和过滤时使用tbl。将怪物线分成更小、更短的线应该有助于调试。

标签: excel vba filter


【解决方案1】:

AutoFilter 日期列

  • 条件必须是字符串:
Option Explicit

Sub FilterByToday()
    Dim Crit1 As String: Crit1 = ">=" & Format(Date, "mm/dd/yyyy")
    ActiveSheet.ListObjects("Table1").Range.AutoFilter 5, Crit1
End Sub
  • 这对我不起作用,可能是因为我的日期分隔符是一个点,除非我将 Crit1 更改为:

    Crit1 = ">=" & Format(Date, "mm\/dd\/yyyy") ' note the backslashes
    

【讨论】:

  • 效果很好,非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2013-06-29
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
相关资源
最近更新 更多