Я пытаюсь использовать массив для фильтрации нескольких значений без жесткого кодирования данных.Я хотел бы создать цикл, который будет проходить через список, который имеет переменные размеры (1 критерий или 3 критерия) для каждого условия.Вот пример того, как будут выглядеть данные:
A B
100 A
200 A
300 B
400 B
500 B
600 B
700 C
Я бы хотел, чтобы код принимал все значения, связанные с «A». Итак, 100 и 200 будут использоваться в качестве значений для фильтрации по, затем используйте все значения, связанные с 'B' - 300, 400, 500 и т. д.
Sub FilterMulti2()
Dim i As Integer
Dim ar(1 To 20) As String
For i = 2 To ThisWorkbook.Worksheets("Sheet1").Range("A10000").End(xlUp).Row + 1
ar(i - 1) = Sheet1.Range("A" & i - 1)
Next i
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter 4, ar, xlFilterValues
'Code****
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter
End Sub
В настоящее время мой код работает только для одного списка, но мне нужно сделать это далееКод определяет, какие элементы фильтровать.
Спасибо
РЕДАКТИРОВАТЬ: Итак, я обновил код после просмотра статьи, опубликованной @badja.Вот код: он будет хранить 'A' и 'B' в ar2, но я не знаю, как использовать это в качестве критерия, по каким элементам первый массив будет использовать для фильтрации.
Sub FilterMulti2()
Dim i As Integer
Dim ar(40) As Variant
Dim ar2(40) As Variant
For i = 2 To ThisWorkbook.Worksheets("Sheet1").Range("A10000").End(xlUp).Row + 1
ar(i - 1) = Sheet1.Range("A" & i - 1)
ar2(i - 1) = Sheet1.Range("B" & i - 1)
Next i
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter 4, ar, xlFilterValues
'Code****
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter 'Turn autofilter Off
End Sub