【问题标题】:Excel Macro to Filter Column to Today's DateExcel 宏将列过滤为今天的日期
【发布时间】:2018-09-14 23:01:35
【问题描述】:

我的工作簿的 J 列中有一个日期列表,我希望有一个宏,该宏将自动过滤以仅在 J 列中显示具有今天日期的那些行。

另外,如果我能有代码按照单元格 K1 中引用的日期过滤列 J,那就太棒了。

谁能帮我提供两者的代码?任何指导将不胜感激!

这是我录制宏以在 J 列中手动选择今天的日期时的代码:

Sub Filter_Today()
'
' Filter_Today Macro
' Filter date column for today's date.
'

'
    ActiveSheet.Range("$A$5:$K$3416").AutoFilter Field:=10, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "9/14/2018")
End Sub

【问题讨论】:

  • 您应该尝试录制宏,如果需要调整,请返回,发布代码并寻求帮助。
  • edit 您的问题是将代码包含在代码块中。它在评论中难以辨认。

标签: excel vba


【解决方案1】:

您可以使用特殊日期过滤器过滤今天(动态)。

Sub Filter_Today()

    with worksheets("sheet1")
        with .range(.cells(5, "J"), .cells(.rows.count, "J").end(xlup))
            .autofilter field:=1, criteria1:=xlFilterToday, operator:=xlFilterDynamic
        end with
    end with

end sub

使用更传统的 AutoFilter 过滤 K1 中的值。

Sub Filter_K1()

    With Worksheets("sheet1")
        With .Range(.Cells(5, "J"), .Cells(.Rows.Count, "J").End(xlUp))
            .AutoFilter Field:=1, Criteria1:=Format(.Parent.Range("K1").Value, "=mm/dd/yy")
        End With
    End With

End Sub

日期格式应与 J 列中使用的日期格式相匹配。

【讨论】:

  • 我使用了你的代码并且过滤器被应用于A列而不是J。
  • 你留下With .Range(.Cells(5, "J"), .Cells(.Rows.Count, "J").End(xlUp))了吗?
  • 是的。我复制并粘贴了您今天日期的第一个代码(动态)。我所做的唯一编辑是更改实际工作表名称的“工作表 1”。
  • 这很奇怪;它对我来说不是那样的。必须与工作表格式有关。显而易见的解决方案是更改为 Field:=10。另请注意我对 K1 问题的编辑。
  • 谢谢吉普德。对于今天的日期过滤器代码,我根据您的建议更改为 Field:=10 并且它成功运行。对于 K1 问题,我进行了前一次编辑(字段:=10)并将日期结构(“=mm/dd/yy”)编辑为我的 excel 表上默认的格式,即“=m/dd/ yyyy”,它成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多