Страницы: 1
RSS
Условие для диапазонов ячеек после автофильтра
 
Всем здравствуйте !
Столкнулся с проблемой как прописать условие для видимых ячеек после автофильтра в диапазонах 7 и 18 столбца (начиная с 4 отфильтрованной строки до последней заполненной отфильтрованной строки)

думаю что алгоритм такой
1)определить Range диапазонов где будут выполняться условия
2)применить свои условия к ячейкам этого Range только в видимом диапазоне (после автофильтра)
примерно так

но как задать требуемые условия для отфильтрованных ячеек не знаю (тк условие только для видимых ячеек)
Код
Dim Rng1 As Range, Rng2 As Range
'определяем диапазоны Rng1 и Rng2 для условий для видимых ячеек после автофильтра
'With ThisWorkbook.ActiveSheet.Range("A1:AH1000").SpecialCells(xlVisible)
'With ThisWorkbook.ActiveSheet.Range("A1:AH1000").SpecialCells(12)
With ThisWorkbook.ActiveSheet
        LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set Rng1 = .Range(.Cells(4, 7), .Cells(LastRow, 7))
   Set Rng2 = .Range(.Cells(4, 18), .Cells(LastRow, 18))


If ActiveSheet.AutoFilter.Filters(7).On Or ActiveSheet.AutoFilter.Filters(18).On Then   'если автофильтр в 7 или 18 столбце включен
'и как прописать эти условия ??
If "Значения отфильтрованных ячеек в диапазоне Rng1 одинаковы" And "Значение отфильтрованных ячеек в диапазоне Rng1 = "Test"" 
And "Значения отфильтрованных ячеек в диапазоне Rng2 одинаковы" And "Значения отфильтрованных ячеек в диапазоне Rng2 > 0" Then
'Условие1
End If
If "Значения отфильтрованных ячеек в диапазоне Rng1 неодинаковы-несовпают" And "Значения отфильтрованных ячеек в диапазоне Rng2 неодинаковы-несовпают"  Then
'Условие2
End If

Else
Exit Sub

End With
Изменено: fix555 - 01.03.2017 22:36:06
 
Зачем там последняя?
Код
Set Rng1 = autofilter.Range.columns(7).specialcells(12)
Я сам - дурнее всякого примера! ...
 
так получается
и как  сейчас перебрать значения ячеек отфильтрованных на совпадение или несовпадение значений ?
Код
Dim Rng1 As Range, Rng2 As Range
'определяем диапазоны Rng1 и Rng2 для условий для видимых ячеек после автофильтра
With ThisWorkbook.ActiveSheet
        Set Rng1 = AutoFilter.Range.Columns(7).SpecialCells(12) 'устанавливаем Rng1 для фильтрованного диапазона в колонке 7
        Set Rng2 = AutoFilter.Range.Columns(18).SpecialCells(12) 'устанавливаем Rng2 для фильтрованного диапазона в колонке 18 

If ActiveSheet.AutoFilter.Filters(7).On Or ActiveSheet.AutoFilter.Filters(18).On Then   'если автофильтр в 7 или 18 столбце включен'и как прописать эти условия ??
If "Значения отфильтрованных ячеек в диапазоне Rng1 одинаковы" And "Все Значения отфильтрованных ячеек в диапазоне Rng1 = "Test""
And "Значения отфильтрованных ячеек в диапазоне Rng2 одинаковы" And "Все Значения отфильтрованных ячеек в диапазоне Rng2 > 0" Then
'Условие1
End If
If "Значения отфильтрованных ячеек в диапазоне Rng1 неодинаковы-несовпают" And "Значения отфильтрованных ячеек в диапазоне Rng2 неодинаковы-несовпают"  Then
'Условие2
End If
 
Else
Exit Sub
 
End With



Изменено: fix555 - 02.03.2017 13:07:10
 
ошибки дает код ругается на строки Set Rng1 = AutoFilter.Range.Columns(7).SpecialCells(12) 'устанавливаем Rng1 для фильтрованного диапазона в колонке 7
Закрыть ошибку On Error Resume Next ??
Код
Dim Rng1 As Range, Rng2 As Range
With ThisWorkbook.ActiveSheet
Set Rng1 = AutoFilter.Range.Columns(7).SpecialCells(12) 'устанавливаем Rng1 для фильтрованного диапазона в колонке 7
Set Rng2 = AutoFilter.Range.Columns(18).SpecialCells(12) 'устанавливаем Rng2 для фильтрованного диапазона в колонке 18 

End With
Страницы: 1
Наверх