У меня есть лист с существующей диаграммой и правильными динамическими именованными диапазонами для подачи на эту диаграмму правильных данных.
Моя проблема заключается в том, что лист представляет собой шаблон, который копируется, а диаграммы копий больше не указывают на именованные диапазоны. Именованные диапазоны копируются на лист (диапазоны зависят от листа), поэтому кажется, что это должно быть просто обновление исходных данных серии. Старая добрая запись дала мне следующий синтаксис, когда я записал это вручную:
ActiveChart.SeriesCollection(1).XValues = "=='Risk 1'!PDates"
ActiveChart.SeriesCollection(1).Values = "=='Risk 1'!Plan"
ActiveChart.SeriesCollection(2).XValues = "=='Risk 1'!ADates"
ActiveChart.SeriesCollection(2).Values = "=='Risk 1'!Actuals"
Я попытался сбросить их в именованные диапазоны с помощью модифицированной версии этого:
For Each Cht In TempSheet.ChartObjects
'Series 1 is the Plan
Cht.Activate
ActiveChart.SeriesCollection(1).XValues = "=='" & TempSheet.Name & "'!PDates"
ActiveChart.SeriesCollection(1).Values = "=='" & TempSheet.Name & "'!Plan"
'Series 2 is the Actuals
ActiveChart.SeriesCollection(2).XValues = "=='" & TempSheet.Name & "'!ADates"
ActiveChart.SeriesCollection(2).Values = "=='" & TempSheet.Name & "'!Actuals"
Next
Я столкнулся с ошибкой «Ошибка, определяемая приложением или объектом», в операторе, который пытается обновить значения X для первой серии.
Я также попытался добавить оператор выбора PlotArea на всякий случай, если это было проблемой, но это не решило проблему. Я проверил, что утверждения, которые должны быть установлены для коллекций, оцениваются правильно (например, "=='" & TempSheet.Name & "'!PDates"
оценивается как «== 'Риск 1'! PDates», на что следует указывать серию).
С этим я довольно хорошо поставлен в тупик и буду признателен за любую помощь, которую кто-либо может предоставить. Заранее спасибо!