Ошибка SetSourceData нескольких сводных диаграмм - PullRequest
0 голосов
/ 01 июня 2009

У меня есть несколько сводных диаграмм, каждая со своей сводной таблицей на отдельных листах в Excel 2002.

Когда я пытаюсь сгенерировать эти диаграммы с помощью VBA со следующим кодом:

Set cht = Charts.Add(After:=Worksheets("Setup"))
With cht
    ' we use named ranges here
    .SetSourceData Source:=range(tblName)
    .Name = chtName

....

где tblName - это именованный диапазон, созданный несколькими строками ранее, код работает нормально, если генерируется только одна таблица и диаграмма, но выдает ошибку времени выполнения 1004: «Исходные данные отчета PivotChart нельзя изменить. .. ", если я попытаюсь сгенерировать сводную таблицу и набор диаграмм один за другим.

При вставке -> Имя -> Определить список созданных именованных диапазонов кажется правильным.

Как правильно установить исходные данные для сводной диаграммы с динамическим диапазоном?

Ответы [ 2 ]

0 голосов
/ 01 июня 2009

Этот фрагмент кода предполагает, что у вас есть только одна сводная таблица на лист, и сводная таблица начинается в ячейке A1:

Sheets(wsName).Select
Range("A1").Select
Set cht = Charts.Add(after:=Worksheets(Worksheets.Count))
With cht
    .SetSourceData Sheets(wsName).Range("A1")
    .Name = chtName

...

Кроме того, изменение «Worksheets.Count» на конкретное имя рабочего листа, по-видимому, также вызывает эту ошибку.

0 голосов
/ 01 июня 2009

Я думаю, вы можете пытаться сделать слишком много вещей одновременно.

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

Используйте сводную таблицу, создайте диаграмму во время выполнения (как в вашем примере). Постройте свой график результатов сводной таблицы.

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