0
У меня есть следующий код ниже,фильтр моего массива на колонке 3 для конкретного слова
Я хочу, чтобы фильтровать массив (не лист) для слова «телефон», который сидит в колонке 3 массива. Затем выход переместится в мой лист адресата («L»)
как изменить следующий код, чтобы отфильтровать слово? Я должен указать, что хочу фильтровать массив, а не лист.
Sub Example1()
Dim arrValues() As Variant
Dim lastRow As Long
Dim filteredArray()
Dim lRow As Long
Dim lCount As Long
Dim alength As Long
lastRow = Sheets("Raw Data").UsedRange.Rows(Sheets("Raw Data").UsedRange.Rows.Count).Row
arrValues = Sheets("Raw Data").Range(Cells(2, 1), Cells(lastRow, 21)).Value
ReDim filteredArray(1 To UBound(arrValues), 1 To 1)
alength = UBound(arrValues)
For lCount = 1 To UBound(arrValues) Step 1
lRow = lRow + 1
filteredArray(lRow, 1) = arrValues(lCount, 1)
Next
Sheets("L").Range("A2:U" & 1 + alength) = filteredArray
End Sub
@ trincot Эй спасибо за ответ, это выглядит очень хорошо, если бы я был тогда отфильтровать столбец 3 для слова «телефон» и хочу вернуть всю строку массива - это этот бит кода, который мне нужно будет изменить в Range? tempArray (lRow) = arrValues (lCount, 2) – Ingram
Нет, вы бы вытащили условие 'if ... =" phone "и всегда выполняли то, что сейчас находится в этом блоке. Если я могу сказать, то, что вы сделали здесь, можно сделать с помощью формул Excel только без необходимости использования макросов. Я не буду вдаваться в это здесь, потому что это другой вопрос, а не тривиальный, но я настоятельно предлагаю его искать. Немакровое решение должно быть предпочтительным, так как оно не нуждается в подтверждении от пользователя для запуска, а также не маркирует книгу как измененную при применении фильтра, в результате чего вы хотите сохранить изменения? ... и т.д. – trincot