【发布时间】:2021-01-24 03:57:03
【问题描述】:
我有一个 Excel 工作表,我需要在其中根据多个条件过滤行。
信息有时位于单元格的中间。
例如,
C12:肯尼迪国际机场 2018 年 1 月咖啡
C13:LGA 01/2018 比萨
C14:SFA 意大利面 2017 年 3 月。
我需要根据尽可能多的 2018 年 1 月写法来过滤与 2018 年 1 月相关的行,以筛选出几百行。
我尝试了以下方法:
Sub myFilter()
Dim dic As Object
Dim eleData As Variant
Dim eleCrit As Variant
Dim arrData As Variant
Dim vTst As Variant
Set dic = CreateObject("Scripting.Dictionary")
vTst = Array("*Jan 2018*", "*JAN 2018*", "*01/2018*", "*012018*", "*12018*")
With ActiveSheet
.AutoFilterMode = False
arrData = .Range("B1:B" & .Cells(.Row.Count, "B").End(xlUp).Row)
For Each eleCrit In vTst
For Each eleData In arrData
If eleData Like eleCrit Then dic(eleData) = vbNullString
Next
Next
.Columns("B:B").AutoFilter Field:=1, Criteria:=dic.Keys, Operator:=xlFilterValues
End With
End Sub
这段代码给出了
运行时错误
“对象不支持此属性或方法”。
如果代码在我的小样本上运行,我会调整代码以适应更大的数据集。
【问题讨论】: