Страницы: 1
RSS
Фильтры сводной таблицы VBA, Фильтры сводной таблицы VBA
 
Всем добрый день!
Подскажите пожалуйста, при работе со сводными таблицами через VBA можно ли как либо разделить фильтры из полей строк и столбцов, и общий фильтр сводной таблицы?
То есть есть код:
Код
Sub Pivot()

ThisWorkbook.RefreshAll
Dim ws As Excel.Worksheet
Dim pvt As Excel.PivotTable
Dim pvi As PivotItem

For Each ws In ActiveWorkbook.Worksheets
    For Each pvt In ws.PivotTables
        pvt.ClearAllFilters
        For Each pvf In pvt.PivotFields
        On Error Resume Next
        pvf.PivotItems("(blank)").Visible = False
        pvf.PivotItems("").Visible = False
        Next pvf
    Next pvt
Next ws

End Sub
В данном коде строкой pvt.ClearAllFilters я очищаю все фильтры, а хотелось бы очищать только фильтры столбцов и строк.
Более понятно думаю на картинке (во вложении)
Изменено: Ametist69 - 31.05.2019 13:11:37
 
Доброе время суток
Цитата
Ametist69 написал:
хотелось бы очищать только фильтры столбцов и строк.
Пользуйтесь тогда соответствующими коллекциями PivotTable.RowFields и PivotTable.ColumnFields.
 
Андрей спасибо, а можете подсказать как правильно написать для очистки этих фильтров?

PivotTable(1).RowFields.Clear не подходит.

Гугл пока че-то тоже не подсказывает((
Изменено: Ametist69 - 31.05.2019 13:29:29
 
Добрый день. Поблагодарить хочу за такой прекрасный сайт и массу полезной информации.
Помогите пожалуйста. Я ввел код (считает сумму ячеек с выделенным цветом)
Public Function SumByColor(DataRange As Range, ColorSample As Range) As Double     Dim Sum As Double
    Application.Volatile True

    For Each cell In DataRange
        If cell.Interior.Color = ColorSample.Interior.Color Then
            Sum = Sum + cell.Value
        End If
    Next cell
    SumByColor = Sum
End Function
И создал второй модуль с кодом где изменил (считает кол-во ячеек с выделенным цветом)
Sum = Sum + 1
Все считает отлично, но...возникли трудности со 2 модулем, когда ячейка с нулевым значением и ее не нужно брать, подскажите что нужно изменить. Спасибо
 
Serginio, а какое отношение Ваш вопрос имеет к ЭТОЙ теме?
 
PivotField.ClearAllFilters
Изменено: sokol92 - 31.05.2019 15:51:43
Владимир
 
Цитата
Ametist69 написал:
PivotTable(1).RowFields.Clear не подходит.
То есть по ссылкам не ходили и описаний не читали? Нет такого объекта PivotTable, нет метода Clear у коллекции RowFields.
Например так
Код
Public Sub test()
    Dim pField As PivotField, pItem As PivotItem
    For Each pField In ActiveSheet.PivotTables(1).RowFields
        pField.VisibleItemsList = Array("")
    Next
End Sub
Страницы: 1
Наверх