Ошибка SetSourceData для нескольких сводных диаграмм
Вопрос
У меня есть несколько сводных диаграмм, каждая из которых имеет собственную сводную таблицу на отдельных листах 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:«Исходные данные отчета сводной диаграммы не могут быть изменены...», если я попытаюсь создать сводную таблицу и набор диаграмм один за другим.
Перейдя к «Вставка» -> «Имя» -> «Определить», список созданных именованных диапазонов кажется правильным.
Как правильно задать исходные данные для сводной диаграммы с динамическим диапазоном?
Решение 2
В этом фрагменте кода предполагается, что у вас есть только одна сводная таблица на листе, и сводная таблица начинается с ячейки 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» на определенное имя листа, похоже, также вызывает эту ошибку.
Другие советы
Я думаю, что вы, возможно, пытаетесь сделать слишком много дел одновременно.
Если источник данных изменится, я бы не стал использовать сводную диаграмму.
Используйте сводную таблицу, создайте диаграмму во время выполнения (как в вашем примере).Постройте диаграмму по результатам сводной таблицы.