Всем здравствуйте ! Столкнулся с проблемой как прописать условие для видимых ячеек после автофильтра в диапазонах 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
так получается и как сейчас перебрать значения ячеек отфильтрованных на совпадение или несовпадение значений ?
Код
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
ошибки дает код ругается на строки 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