我想过滤Excel中的特定列。所有单元格都包含以下字符串之一:Midpoint
,Endpoint
或Midpoint, Endpoint
。我想保留所有包含字符串Midpoint
或Endpoint
的单元格(无论该单元格中还有其他什么字符串)。我正在使用通配符(*
),并将以下数组定义为search_criteria
:Array("*Midpoint*", "*Endpoint*")
。
但是,这种行为有点奇怪,我不理解。显然,仅显示单元格值为Endpoint
或Midpoint, Endpoint
的行,而不显示单元格值包含字符串Midpoint
或Endpoint
的行。
Sub Oval5_Click()
column = 13
search_criteria = Array("*Midpoint*", "*Endpoint*") ''OR
'search_criteria = "*Midpoint*, *Endpoint*" ''AND
Worksheets("Overview").Activate
StartRow = 10
EndRow = 110
StartColumn = "A"
EndColumn = "Y"
Let Filterrange = StartColumn & StartRow & ":" & EndColumn & EndRow
ActiveSheet.Range(Filterrange).AutoFilter Field:=column, Criteria1:=search_criteria ', VisibleDropDown:=False
End Sub
答案 0 :(得分:2)
一些要考虑的事情:
Activate
,而应使用显式工作表引用。话虽如此,由于您所有的单元格都包含三个可能的字符串之一,因此也许可以执行以下操作:
ActiveSheet.Range(Filterrange).AutoFilter Field:=13, Criteria1:="<>*Midpoint, Endpoint*"