Самый простой способ получить искомое поведение - добавить код в метод создания диаграммы, чтобы переместить исходные данные диаграммы в скрытую электронную таблицу утилит или что-то подобное, и не ссылаться на «рабочий» диапазон напрямую.
Например, сначала скопируйте данные в созданную вами скрытую электронную таблицу с именем «ChartData», а затем измените код создания диаграммы, чтобы он смотрел на этот лист, а не там, где он выглядит сейчас. Затем вы можете сохранить счетчик на некотором листе конфигурации или использовать коллекцию фигур электронных таблиц (поиск ActiveSheet.Shapes
для объектов типа Chart
), чтобы определить, сколько диаграмм уже создано, и настроить последующие диаграммы для ссылки на свои собственные. отдельные столбцы на «ChartData», чтобы не было перекрытия.
Однако, если вы используете коллекцию фигур, не забудьте очистить лист ChartData, чтобы синхронизировать ваши данные и коллекцию диаграмм.
Тем не менее, вы решаете проблему, однако ключ к тому, чтобы диаграммы ссылались на свои собственные серии данных, а не на общий источник.