Поиск с автофильтром для любой строки из массива - PullRequest
0 голосов
/ 29 октября 2019

Я хотел бы отфильтровать определенный столбец в 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
.

1 Ответ

2 голосов
/ 29 октября 2019

Некоторые вещи для рассмотрения:

  • Избегайте Activate, но вместо этого используйте явные ссылки на листы.
  • Посмотрите эту документацию о том, какиспользовать параметры этой функции.

При этом, поскольку все ваши ячейки содержат одну из трех возможных строк, возможно, что-то в этом направлении будет работать:

ActiveSheet.Range(Filterrange).AutoFilter Field:=13, Criteria1:="<>*Midpoint, Endpoint*"
...