Изменение источника данных сводной таблицы - PullRequest
1 голос
/ 11 июня 2019

Ничто так не расстроило меня из-за VBA, как сводные таблицы.Я хотел бы просто указать источник данных для сводной таблицы с помощью VBA.

Dim pvtcache As PivotCache
Dim Range1 As Range

ActiveSheet.PivotTables("PivotTable4").ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ThisWorkbook.Worksheets("Business Process Identification").Range("A1:Bc1693").Address(ReferenceStyle:=xlR1C1) _
, Version:=6)

Я пытаюсь открыть рабочую книгу с сайта SP, а затем обратиться к данным для источника данных, обновить, а затем закрыть книгу.

Я получаю ошибку времени выполнения '-2147024809', которая говорит: «Имя поля сводной таблицы недопустимо. Чтобы создать отчет сводной таблицы, необходимо использовать данные, которые организованы в виде списка с помеченными столбцами. ЕСЛИ выизменяя имя поля сводной таблицы, вы должны ввести новое имя для поля "

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

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

1 Ответ

0 голосов
/ 11 июня 2019

после попытки МНОГИХ различных подходов и вариантов, я обнаружил, что если вы превратите нужный диапазон в таблицу и используете «ListObjects», изменение исходных данных в сводной таблице будет работать:

Workbooks("SubLOBs").Worksheets("APQCL2").PivotTables("PivotTable4").ChangePivotCache _
Workbooks("SubLOBs").PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ThisWorkbook.Worksheets("Business Process Identification").ListObjects("Table1"))

Понятия не имею почему.Я понятия не имею, почему параметр с именем «SourceData» не может просто ссылаться на диапазон, а должен находиться в таблице и именоваться списком объектов.Сводные таблицы могут сосать член.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...