Страницы: 1
RSS
Перенос данных, найденных по критерию на другой лист
 
Здравствуйте!

Имеется большой макрос, выполняющий множество задач. Интересует последний кусок

Код
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" и
закрашивает строку в цвет.
Как скопировать найденные закрашенные строки в новый лист?
Изменено: antonys - 02.03.2013 18:15:42
 
Цитата
If Cells(i, 3).Value > o
Вы уверены, что здесь нужна буква «o» вместо нуля (0)?

Вот эта функция вам поможет:
http://excelvba.ru/code/arrautofilter

Пример её использования, для вашего случая:

Код
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
 
Поставьте автофильтр, отфильтруйте по цвету . Видимые ячейки скопируйте и вставьте
в нужное место.Запишите рекордером и вставьте в свой макрос.
 
Цитата
EducatedFool пишет:
Вы уверены, что здесь нужна буква «o» вместо нуля (0)?
конечно же нужен 0. Видимо при копировании с кода что-то не так отформатировалось
Цитата
EducatedFool пишет:
Вот эта функция вам поможет:
http://excelvba.ru/code/arrautofilter
Спасибо буду пробовать.
Цитата
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
 
New, cпасибо
Страницы: 1
Читают тему
Наверх