Еще раз у меня возникают проблемы при попытке использовать критерии массива в автофильтрах. Может быть, кто-то сможет это решить.Передача строковой переменной в массив критериев автоматического фильтра VBA
У меня есть строки критериев на листе excel в следующем формате: 12562,15215 (они редактируются пользователями).
Что я хочу сделать, так это для того, чтобы цикл принимал каждую ячейку, содержащую эти критерии, и автофильтр определенного поля в другой книге, используя содержимое ячейки в виде массива, а затем переходите к следующей строке критериев.
Петля кажется прекрасной (я могу ошибаться), но когда дело доходит до автофильтра, он не находит никаких ячеек. Строковая переменная не будет корректно переходить к массиву критериев фильтра (если я просто жестко задаю критерии фильтрам - все работает).
Имеет ли в моем коде некоторые ошибки, или же весь подход ошибочен?
Любая помощь приветствуется.
Dim ExcRange As Range
Dim Col As Range
Dim Filter1 As Variant
With RawData.Worksheets(1)
.AutoFilterMode = False
End With
Dim Lastrow3 As Integer
Lastrow3 = RawData.Worksheets(1).Cells(Rows.Count, "O").End(xlUp).Row
Set ExcRange = RawData.Worksheets(1).Range("O11:O" & Lastrow3)
For Each Col In ExcRange
If Not Col Is Nothing Then
Filter1 = Split(Col.Value, ",")
With NewBook.Worksheets(1)
.Cells.AutoFilter Field:=1, Criteria1:=Array(Filter1), Operator:=xlFilterValues, Operator:=xlAnd
End With
Else
End If
Next Col
Я также попытался кодирования автофильтрами таким образом:
.Cells.AutoFilter Field:=5, Criteria1:=Filter1, Operator:=xlFilterValues, Operator:=xlAnd
есть только номер в 'ExcRange', подобный этому' 12562', или числа с кавычками, такими как «12562». –