单元格 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
不幸的是,它似乎不起作用。
最佳答案
代码
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
输出
关于vba - 仅按月份名称过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32581573/