Можно ли напрямую ссылаться на исходные данные сводной таблицы?

#excel #vba #pivot-table

#excel #vba #сводная таблица

Вопрос:

У меня есть большая таблица данных на листе 1 и сводная таблица на листе 2, основанная на листе 1. Я хотел бы иметь возможность переходить от выбранного сводного элемента на листе 2 непосредственно к ячейке на листе 1, из которой получены данные. Пока я просто использую

 EID = ActiveCell.PivotTable.PivotFields(1).DataRange.Cells(ActiveCell.PivotCell.PivotRowLine.Position, 1).Text
Set rTarget = Sheet1.Columns(1).Find(EID, lookat:=xlWhole, MatchCase:=True)
Sheet1.activate
rTarget.activate
  

Что немного запутанно, потому что моя текущая стратегия поиска данных — это уникальный идентификатор в сводных полях (1), но я хочу разрешить пользователю выбирать любую ячейку вдоль строки. Поэтому я должен ссылаться на адрес ячейки в сводных полях (1) в той же строке, а затем искать его в листе 1.

Я бы предпочел избегать использования ячеек.Найти и было интересно, есть ли метод или свойство, которые могли бы позволить мне сделать что-то вроде:

 set rTarget = Activecell.PivotItem.SourceDataRange
  

Где SourceDataRange вернет диапазон ячейки в Sheet1, которая предоставляет данные для pivotitem. Сводная таблица.SourceData возвращает весь диапазон. Я ищу диапазон отдельного сводного элемента.

Существует ли такой метод?

Комментарии:

1. AFAIK в объектной модели такого свойства нет.

2. Как это будет работать, если существует связь 1-2-1 как поворачивается совокупности строк данных? 1-2-1 — это, по сути, таблица. Похоже, вам действительно нужен диапазон детализации, который вы получаете при двойном щелчке по элементу в сводной таблице databodyrange.

3. Я думаю, вам нужно будет написать какой-нибудь пользовательский vba, поскольку я не вижу ничего, перечисленного в методах range или pivotitem .