Добрый день! Просьба помочь. Я сделал форму с ListBox для удобной фильтрации данных в сводной таблице. В ListBox можно отмечать значения и по нажатии ОК сводная таблица фильтруется согласно выбранных значений.
Но я не знаю как передать в ListBox значения уже установленных фильтров в сводной таблице.
Так как получается некрасиво. Таблица при первом открытии файла уже отфильтрована согласно предыдущих установок, а моя форма при первичном открытии получается девственно чистая, что не есть хорошо.
Как передать список уникальных значений в ListBox уже разобрался. А как отметить те которые уже отфильтрованы - не знаю.
Попробовал такой код
Код
Private Sub UserForm_Initialize()
Call RefreshListBoxDate
End Sub
Код
Sub RefreshListBoxDate()
ListBox3.List = ModuleFilter.Extract_Unique("tbBasePLBS", "Дата")
With Worksheets("Свод_1").PivotTables("СводнаяТаблица2").PivotFields("[tbBasePLBS].[Дата].[Дата]")
For i = 1 To .PivotItems.Count
'MsgBox .PivotItems(i).Name & " Visible is " & CStr(.PivotItems(i).Visible)
ListBox3.Selected(i - 1) = .PivotItems(i).Visible
Next i
End With
End Sub
Но почему-то в PivotItems свойство Visible оказалось у всех True
Можете подсказать почему я не могу обратится к полю просто по имени в PivotFields написав ... PivotFields("Дата") (почему-то выдает ошибку, что объект не найден) А нужно писать имя поля в PivotFields в таком виде ? (так пишет макрорекордер)