【问题标题】:EXCEL VBA get raw data format with DATE() and get the date a week agoEXCEL VBA 使用 DATE() 获取原始数据格式并获取一周前的日期
【发布时间】:2014-12-09 07:09:47
【问题描述】:

是否可以使用 VBA 获取当前日期的原始数据?我要做的是从其中一列中获取日期并根据过去 7 天过滤掉结果。让我给你看一下“日期”列。

Parent CR Sent to IT
41824.74167
41844.66528
41842.81458
41845.57778
41845.89583
41850.83958
41869.47569
41877.46528

问题是我不能更改列中的日期。我想使用自动过滤器根据这些过滤掉最后 7 天的结果。

crdata.Range("A1").CurrentRegion.AutoFilter Field:=9, _
            Criteria1:=">=" & CLng(Date), Operator:=xlAnd, Criteria2:="<=" & CLng(Date + 7)

显然,从上面的代码中,CLng(Date) 没有按预期工作,并且不会过滤任何行。有什么建议或想法来解决它?

【问题讨论】:

  • 代码似乎运行良好。我已经检查过了。你遇到了什么问题?
  • @PareshJ 没问题。它只是从不过滤任何东西。
  • 您在第 9 列保留了过滤器,您要在该列上应用过滤器吗??
  • @PareshJ 第 9 列是上面显示的日期列。

标签: vba date excel


【解决方案1】:

我在 A 列和下面的子项中对您的数据进行了测试,它可以正确过滤。所以你的代码很好,但是今天的日期(mydate = Date)我也没有得到任何结果。

Public Sub Test()
    Dim mydate As Date
    mydate = CDate("2014-07-22")

    Tabelle1.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=">=" & CLng(mydate), Operator:=xlAnd, Criteria2:="<=" & CLng(mydate + 7)

End Sub

问题是您提供的数据是

Parent CR      formated as date
41824.74167    2014-07-04
41844.66528    2014-07-24
41842.81458    2014-07-22
41845.57778    2014-07-25
41845.89583    2014-07-25
41850.83958    2014-07-30
41869.47569    2014-08-18
41877.46528    2014-08-26
  • date 表示今天是 2014-12-09
  • 你的过滤器意味着:给我2014-12-092014-12-09 + 7之间的所有日期
  • 结果:没有,因为您的筛选范围内没有日期

【讨论】:

  • 日期不是默认函数吗?
  • 是的 date 是今天的日期。但是使用您的数据和今天的日期,它会过滤并显示没有结果,因为您的日期没有在今天和今天 + 7 之间
猜你喜欢
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
相关资源
最近更新 更多