-1

Я загружаю это в диаграммы Выберите поле данных = 'Metrics Test 2.xlsx'!ROFPS_Range и график работает отлично. Если я изменяю диапазон, я работаю с формулой, меняющейся на = 'UW ATO'!$ B $ 10:$ B $ 15 и название серии потеряно. Теперь диапазон графика статичен, и мне он нужен динамически. Как мне сохранить исходную формулу?

2 ответа2

2

У меня такая же проблема. Я просто использовал VBA для сброса источника данных диаграммы. Это не самый гибкий код когда-либо, но он решает мою проблему. Просто чтобы прояснить, мои данные и диаграмма находятся на вкладке с именем outputchart. этот источник данных называется rngChartData, и это динамический диапазон с использованием обычной конструкции OFFSET

Sub UpdateChart()
    Sheets("outputchart").Activate
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.SetSourceData Source:=Range("rngchartdata")
End Sub
0

У меня была точно такая же проблема несколько недель назад. Кажется, Excel не запоминает динамические имена для диапазонов данных диаграмм / графиков. Единственный обходной путь, который я нашел, заключался в создании сводной диаграммы.

  1. Создайте сводную таблицу на основе данных в вашем диапазоне таблиц 'UW ATO'!$B$10:$B$15 (или сколько хотите, чтобы это было так) и обязательно включите соседние столбцы, которые содержат метки осей.
  2. Поместите метки осей в поле строк, а свои значения - в поле значений сводной таблицы.
  3. Поместите фильтр на ярлыки строк, чтобы исключить пустые ярлыки (Содержит ? работал для меня, но разные типы данных могут потребовать другого решения).
  4. Добавьте сводную диаграмму, основанную на вашей сводной таблице.

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

ThisWorkbook.Sheets("UW ATO").PivotTables("YOUR PIVOT TABLE NAME").PivotCache.Refresh

Но на самом деле, я надеюсь, что у кого-то есть лучшее решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .