Заполните поле со списком значениями сводной таблицы - PullRequest
1 голос
/ 24 мая 2019

У меня есть поле со списком имен, который фильтрует сводную таблицу.
Каждое выбранное мной имя изменяет значения, отображаемые в сводной таблице.

Мне нужен код, который заполняет второе поле со списком этими значениями сводных таблиц. Когда я выбираю имя в первом поле со списком, параметры во втором будут те, которые отфильтрованы по этому имени в сводной таблице.

Раньше я делал это более простым способом с фиксированными таблицами, но теперь значения будут постоянно меняться, и поэтому мне нужно использовать сводную таблицу для этого.

enter image description here

1 Ответ

0 голосов
/ 26 мая 2019

Вы можете использовать DataRange вашего PivotField в качестве источника для ComboBox.

Вы можете добавить значение каждой ячейки к элементам ComboBox ...

Dim aCell As Range
For Each aCell In ActiveSheet.PivotTables(1).RowFields(1).DataRange.Cells
    ActiveSheet.ComboBox1.AddItem aCell.Value
Next aCell

... или целому ComboBox.List в одной простым присваиванием:

ActiveSheet.ComboBox1.List = ActiveSheet.PivotTables(1).RowFields(1).DataRange.Value

Полагаю, вы использовали свой список "TIMBRA ..." в качестве единственного поля строки в сводной таблице.
Если нет, вы можете вместо этого обращаться к DataRange по именам, например,

ActiveWorkbook.Sheets("...").PivotTables("...").PivotFields("...").DataRange
...