vba - 仅按月份名称过滤

标签 vba excel date

单元格 A1、A2 和 A3 中有三个日期。我想获取每个日期的月份并过滤包含多个日期的数据集。过滤器应仅包含 A1、A2 和 A3 中三个日期的月份中存在的日期。

例如:

A1:2015年1月1日,
A2:2015年1月2日,
A3:2015年1月3日

 Dataset:
 20/01/2015
 25/12/2015
 01/09/2015
 14/02/2015
 15/03/2015
 01/06/2015

因此过滤器应该是:

 20/01/2015
 14/02/2015
 15/03/2015

我当前的语法是这样的:

 Dim mon1 As String
 Dim mon2 As String
 Dim mon3 As String

 Dim a As Date
 Dim b As Date
 Dim c As Date

 a = Range("A1")
 b = Range("A2")
 c = Range("A3")

mon1 = MonthName(Month(a))
mon2 = MonthName(Month(b))
mon3 = MonthName(Month(c))

With ActiveSheet

 .AutoFilterMode = False
 .Range("A5:D5000").AutoFilter Field:=3, Criteria1:=Array(mon1, mon2, mon3), Operator:=xlFilterValues

End With

不幸的是,它似乎不起作用。

最佳答案

  1. 在右侧插入一列并将其命名为“月份”。

    enter image description here

  2. 将此公式 =TEXT(C6,"mmmm") 放入 D6 中,然后使用以下代码

代码

Sub Sample()
    Dim mon1 As String, mon2 As String, mon3 As String

    mon1 = MonthName(Month(Range("A1")))
    mon2 = MonthName(Month(Range("A2")))
    mon3 = MonthName(Month(Range("A3")))

    With ActiveSheet
        .AutoFilterMode = False
        .Range("A5:D5000").AutoFilter Field:=4, _
        Criteria1:=Array(mon1, mon2, mon3), _
        Operator:=xlFilterValues
    End With
End Sub

输出

enter image description here

关于vba - 仅按月份名称过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32581573/

相关文章:

PHP 日期时间难度

excel - 过滤精确匹配并从范围中提取标准

python - Pandas :计算有条件的连续行

regex - 如何仅捕获匹配字符串的一部分?非捕获组

vba - Excel VBA 自动筛选包含多个条件

php - 在 PHP 中优雅地获取指定日期的季度最后日期

java - 错误地解析日期

vba - 一个单元格更新后自动用数据填充一列

excel错误424调用sub时需要对象

excel - 如何枚举所有可以以纯文本形式打开 XML 文件的程序?