Я загружаю это в диаграммы Выберите поле данных = 'Metrics Test 2.xlsx'!ROFPS_Range и график работает отлично. Если я изменяю диапазон, я работаю с формулой, меняющейся на = 'UW ATO'!$ B $ 10:$ B $ 15 и название серии потеряно. Теперь диапазон графика статичен, и мне он нужен динамически. Как мне сохранить исходную формулу?
2 ответа
У меня такая же проблема. Я просто использовал VBA для сброса источника данных диаграммы. Это не самый гибкий код когда-либо, но он решает мою проблему. Просто чтобы прояснить, мои данные и диаграмма находятся на вкладке с именем outputchart. этот источник данных называется rngChartData, и это динамический диапазон с использованием обычной конструкции OFFSET
Sub UpdateChart()
Sheets("outputchart").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData Source:=Range("rngchartdata")
End Sub
У меня была точно такая же проблема несколько недель назад. Кажется, Excel не запоминает динамические имена для диапазонов данных диаграмм / графиков. Единственный обходной путь, который я нашел, заключался в создании сводной диаграммы.
- Создайте сводную таблицу на основе данных в вашем диапазоне таблиц
'UW ATO'!$B$10:$B$15
(или сколько хотите, чтобы это было так) и обязательно включите соседние столбцы, которые содержат метки осей. - Поместите метки осей в поле строк, а свои значения - в поле значений сводной таблицы.
- Поместите фильтр на ярлыки строк, чтобы исключить пустые ярлыки (Содержит
?
работал для меня, но разные типы данных могут потребовать другого решения). - Добавьте сводную диаграмму, основанную на вашей сводной таблице.
Недостатком является то, что эту сводную диаграмму необходимо обновить вручную. Я закончил тем, что добавил кнопку VBA, чтобы сделать это на основе записи макросов:
ThisWorkbook.Sheets("UW ATO").PivotTables("YOUR PIVOT TABLE NAME").PivotCache.Refresh
Но на самом деле, я надеюсь, что у кого-то есть лучшее решение.