Имеется большой макрос, выполняющий множество задач. Интересует последний кусок
Код
For i = 2 To 200
If Cells(i, 3).Value > 0 And Left(Cells(i, 3), 3) = "asy" Then
Cells(i, 1).Resize(1, 20).Interior.ColorIndex = 16
End If
Next i
данный отрезок просматривает строки 3 столбца в поисках слов с "asy" и закрашивает строку в цвет. Как скопировать найденные закрашенные строки в новый лист?
Sub FilterExample()
On Error Resume Next
Dim arr As Variant
' отбираем только нужные строки
arr = ArrAutofilterEx(Range("a2:t200").Value, "3=asy*")
' создаем лист, вставляем на него результат
Worksheets.Add.Range("a1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
End Sub
magrifa пишет: Поставьте автофильтр, отфильтруйте по цвету . Видимые ячейки скопируйте и вставьте в нужное место.Запишите рекордером и вставьте в свой макрос.
EducatedFool пишет: ' создаем лист, вставляем на него результат Worksheets.Add.Range("a1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr End Sub
Спасибо за функцию. Возник еще один вопрос, можно ли как-нибудь перед добавлением листа с помощью Worksheets.Add.Range применить текстовый формат для всех ячеек, т.к. у меня в ячейках номера 20-х счетов. куда мне вставить Selection.NumberFormat = "@"?
' создаем лист, вставляем на него результат
With Worksheets.Add
.Cells.NumberFormat = "@"
.Range("a1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
End With