【问题标题】:VBA/Excel - Sort by date rangeVBA/Excel - 按日期范围排序
【发布时间】:2015-08-02 22:43:16
【问题描述】:

我正在尝试使用 VBA 按日期范围对 Excel 工作表进行排序。我需要过滤当前日期一周内的所有条目。

工作表按列(A 到 S)排列。 “I”列存储我要过滤的日期。

以下是我尝试过的最新代码(我尝试了一些变体......但无法弄清楚)。

Dim A As Date
Dim b As String
Dim c As Long
A = Date
A = DateSerial(Year(A), Month(A), Day(A))
b = Format(A - 7, "yyyy, mm, dd")
c = b    
With ActiveSheet
    .Range("$A:$S").AutoFilter Field:=9, Criteria:=">" & c
    End With

在此先感谢您的帮助。

GTD

【问题讨论】:

  • 这种格式“yyyy, mm, dd”是我列中的格式值被格式化了吗?这是存储日期的非常令人惊讶的方式
  • Hi -- 'I' 列中的日期格式为 mm/dd/yyy。

标签: vba sorting date excel


【解决方案1】:

试试这个:

 ActiveSheet.Range("$A$1:$S$" & ActiveSheet.UsedRange.Rows.Count).AutoFilter Field:=9, Criteria1:=">" & Format(Date - 7, "mm/dd/yyyy")

【讨论】:

    【解决方案2】:

    试试这个:

    Dim A As Date
    A = Date
    
    With ActiveSheet
        .Range("$A:$S").AutoFilter Field:=3, Criteria1:=">" & A - 7
    End With
    

    【讨论】:

    • 感谢您为我调查此事。它没有工作,因为我需要它,我害怕。它确实过滤了:)。对我来说,'Field:=3' 应该是 'Field:=9'。此外,它似乎从过滤器中删除了所有日期。
    猜你喜欢
    • 2014-02-22
    • 2017-04-23
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多