Страницы: 1
RSS
Ошибка при копировании видимых ячеек после фильтрации
 

Здравствуйте! При попытке скопировать после фильтрации видимые строки выдается ошибка:

"Не найдено ни одной ячейки, удовлетворяющей указанным условиям"

Код
With List4
        lrv = Application.CountA(.Columns(1).SpecialCells(12))
        If lrv > 2 Then
            .Range(.Cells(2, 1), .Cells(lrv, 3)).SpecialCells(12).Copy List3.[A1]
        End If
End With
 
Это что? т.е что делает эта строка кода?
Код
lrv = Application.CountA(.Columns(1).SpecialCells(12))

Желательно бы файл пример увидеть.
Изменено: Nordheim - 28.06.2018 09:07:12
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
Это что
Определяет количество видимых ячеек
 
Код
Sub ler1()
    With List4
        .[A:H].AutoFilter Field:=1, Criteria1:="Набор"
        .AutoFilter.Range.SpecialCells(12).Copy List3.[A1]
        .[A:H].AutoFilter Field:=1
    End With
End Sub
 
У Вас всегда будет >2. Вряд ли Вы хоть когда-нибудь скроете все 1048576 строк первого столбца
 
Так правильно пишет, в фильтр попадают ячейки из строк 10,11 и 35 а в диапазоне указаны с 2 по 4 а они как раз невидимые.
Вот так вроде работает, с диапазоном сами подкрутите , что бы не забирал первую строку
Код
Sub ler1()
    With List4
        .[A:H].AutoFilter Field:=1, Criteria1:="Набор"
        ler = Application.CountA(.Columns(1).SpecialCells(12))
        If ler > 2 Then
            .Columns("a:c").SpecialCells(12).Copy List3.[A1]
        End If
    End With
End Sub
Изменено: Nordheim - 28.06.2018 10:13:19
"Все гениальное просто, а все простое гениально!!!"
 
наверное так
Код
Sub ler1()
    With List4
    lr = .UsedRange.Row + .UsedRange.Rows.Count - 1
        .[A:H].AutoFilter Field:=1, Criteria1:="Набор"
        ler = .Range("A2:A" & lr).SpecialCells(xlCellTypeVisible).Cells.Count
        If ler > 2 Then
            .Range("A2:A" & lr).SpecialCells(12).Copy List3.[A1]
        End If
    End With
End Sub
 
Все способы работают, спасибо!!!
Страницы: 1
Наверх