Здравствуйте добрые люди Подскажите как можно автоматизировать процесс копирования диаграмм. Т.е. существует таблица с данными на основании которых строится диаграмма. Можно ли настроить первую диаграмму таким образом, что бы затем копировать диапазон таблицы с диаграммой, вставлять ниже, менять данные в последующих таблицах, и они менялись бы в диаграммах, т.е что бы в ручную не менять диапазон данных для каждой диаграммы.
1) Копирование выделенного диапазона вместе со всеми диаграммами - я выделяю таблицы с диаграммами и копирую с помощью CopyRangeWithCharts 2) Укажите диапазон (ячейку) вставки- указываю диапазон - вставляются таблицы с диаграмми, при этом привязка остается к исходным таблицам. 3) Перед запуском макроса выделяем диаграмму - выделяю таблицы с диаграмми и нажимаю RenameChartObject() Переименовываем Объект-Диаграмма - макрос сам должен переименовать диаграмму? или я каким то образом? 4) Изменяем 'Название диаграммы' Перед запуском макроса выделяем диаграмму - я выделяю таблицы с диаграмми. Снова вопрос: название диаграммы макрос изменяет или я каким то образом? нажимаем ChangeCaptionOfChart() 5) Изменяем 'Диапазон данных' (по столбцам) Перед запуском макроса выделяем диаграмму - снова выделяю таблицы с диаграмми и нажимаю hangeSourceDataOfChart() И ничего не получается.
Я походу ничего в этом не понимаю. Подскажите пожалйста: что здесь я не понимаю? Как надо было дейстововать?
К сожалению объект Chart (Диаграмма) не имеет свойства SourceData - ссылки на диапазон_данных, его можно только установить Sub-методом SetSourceData. А свойства РядовДанных (SeriesCollection) - XValues (Значения X) и Values (Значения Y) возвращают только массивы, а не ссылки на ячейки листа. Т.е. нельзя напрямую определить - где на листе находится диапазон с исходными данными диаграммы (или я такого способа не знаю).
В "КопиироватьДиаграмму.xls" (ой, нашёл там свою ооошибку!) я определял для ОДНОЙ, вновь созданной (скопированной) диаграммы, место диапазона, косвенно - относительно фиксированного "Диапазон_диаграммы.1". В случае копирования произвольной области этот трюк не работает.
Если Вы хотите использовать макросы "КопироватьДиаграмму(4).xls": 1. выделяете область с диаграммами вместе с диапазонами_данных, запускаете макрос "CopyRangeWithCharts", инпутбоксом указываете ячейку вставки, Ok (можно и стандартным способом: сначала в диалоге "Сервис -- Параметры -- Правка" установить галку "Перемещать объекты вместе с ячейками", скопировать/вставить диапазон, потом (если надо) убрать галку).
А теперь придётся ПОВТОРИТЬ для КАЖДОЙ новой диаграммы: 2. для установления связи диаграммы с новыми данными - выделяете диаграмму, запускаете "ChangeSourceDataOfChart", инпутбоксом выделяете новый диапазон_данных этой диаграммы, Ok (а может проще воспользоваться стандартным диалогом "Диаграмма -- Исходные данные"); 3. чтобы изменить (если хотите) "Название диаграммы" - выделяете диаграмму - макрос "ChangeCaptionOfChart", Ok (а может проще стандартный: "Диаграмма -- Параметры диаграммы -- Заголовки"); 4. чтобы в диалоговом окне "Выделить несколько объектов" имена диаграмм отличались (если хотите) - выделяете диаграмму - макрос "ChangeCaptionOfChart", Ok (а это уже стандартными способами сделать нельзя).