【问题标题】:Excel Autofilter with Date Limit带有日期限制的 Excel 自动过滤器
【发布时间】:2015-10-02 17:50:58
【问题描述】:

我尝试为我公司的部门实施一个易于使用的 Autofilter-mask。我的目的是使其尽可能灵活,以便员工无需编程即可对其进行管理。

我当前的问题是,他们想使用以下输入过滤日期:6M 等。

有人知道可以将此输入添加到 VBA 自动过滤方法吗?

我有这样的想法:

filterRange.AutoFilter
filterRange.AutoFilter 'dateColumn', "<3M"

最好的方法是将员工的输入直接传递给自动过滤方法。

提前谢谢。

【问题讨论】:

  • 使用自动过滤器记录自己,并应用各种预设的日期过滤器选项,例如本周、下周、上个月、下季度等。在您完成了一些之后,停止记录器并查看您生成的代码。这应该会给你一些关于你可以为用户提供什么的想法。
  • 宏记录对我没有帮助,因为它只提供常量。例如。 “xlFilterLastWeek”常量取前一周而不是最后 7 天。此外,它需要将周日至周六作为一周,这对于德语国家来说是不够的。
  • 可能需要根据 VBA 中的当前日期 = CInt(Now) 进行一些数学运算。应该只是简单的减法。也就是说,一周前的CInt(Now) - 7。如果您需要它从特定日期转到其他日期,您可以添加额外的代码来处理日期并使用一些内置的 Excel 日期函数EOMONTH 等。
  • 我以一种不太舒服的方式解决了它。在隐藏的工作表上,“Public Function getDate(interval, no) getDate = Format(DateAdd(interval, no, Date), "dd.mm.yyyy") End Function
  • 如果解决了您的问题,请发表您的评论作为答案。这有助于社区和我们这些寻找未解决问题的人。

标签: excel date autofilter vba


【解决方案1】:

我以一种不太舒服的方式解决了这个问题。在隐藏的工作表上,“

Public Function getDate(interval, no) 
getDate = Format(DateAdd(interval, no, Date), "dd.mm.yyyy") 
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2015-04-18
    • 2016-07-17
    • 1970-01-01
    • 2018-02-17
    • 2017-05-26
    相关资源
    最近更新 更多