Ошибка SetSourceData для нескольких сводных диаграмм

StackOverflow https://stackoverflow.com/questions/933407

  •  06-09-2019
  •  | 
  •  

Вопрос

У меня есть несколько сводных диаграмм, каждая из которых имеет собственную сводную таблицу на отдельных листах 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» на определенное имя листа, похоже, также вызывает эту ошибку.

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top