Всем доброго времени суток! Подскажите (не нашла готовое решение, подозреваю, что без макроса не обойтись), как вывести информацию, в каких колонках Excel проставлен фильтр. Рабочая таблица широка, как Волга. Глазами просмотреть - запаришься. (фильтр не по первой строке, если это важно) Заранее благодарна, счастья, здоровья!
Всем доброго времени суток! Подскажите (не нашла готовое решение, подозреваю, что без макроса не обойтись), как вывести информацию, в каких колонках Excel проставлен фильтр. Рабочая таблица широка, как Волга. Глазами просмотреть - запаришься. (фильтр не по первой строке, если это важно) Заранее благодарна, счастья, здоровья!ikariya
Sub www() If ActiveSheet.AutoFilterMode Then With ActiveSheet.AutoFilter For c = 1 To .Filters.Count If ActiveSheet.AutoFilter.Filters(c).On Then Cells(4, c + .Range.Column - 1).Interior.Color = vbCyan Else Cells(4, c + .Range.Column - 1).Interior.Color = xlNone Next c End With End If End Sub
[/vba]
Здравствуйте. Как вариант [vba]
Код
Sub www() If ActiveSheet.AutoFilterMode Then With ActiveSheet.AutoFilter For c = 1 To .Filters.Count If ActiveSheet.AutoFilter.Filters(c).On Then Cells(4, c + .Range.Column - 1).Interior.Color = vbCyan Else Cells(4, c + .Range.Column - 1).Interior.Color = xlNone Next c End With End If End Sub
Sub www() If ActiveSheet.AutoFilterMode Then With ActiveSheet.AutoFilter For c = 1 To .Filters.Count Cells(.Range.Row, c + .Range.Column - 1).Interior.Color = IIf(.Filters(c).On, vbCyan, xlNone) Next c End With End If End Sub
[/vba]
Чуть скорректировать [vba]
Код
Sub www() If ActiveSheet.AutoFilterMode Then With ActiveSheet.AutoFilter For c = 1 To .Filters.Count Cells(.Range.Row, c + .Range.Column - 1).Interior.Color = IIf(.Filters(c).On, vbCyan, xlNone) Next c End With End If End Sub
Function IsFiltered(ByRef cell As Range) As Boolean On Error Resume Next With cell.Parent.AutoFilter IsFiltered = .Filters(cell.Column - .Range.Column + 1).On End With End Function
Function IsFiltered(ByRef cell As Range) As Boolean On Error Resume Next With cell.Parent.AutoFilter IsFiltered = .Filters(cell.Column - .Range.Column + 1).On End With End Function