Добрый день Гуру !
Помогите решить задачу (чур задачу не комментировать – не я её ставил).
Есть файлы с приложением к проекту по тело-технике. В каждом не менее 170 диаграмм, какие-то на рабочих листах, другие на листах диаграмм. Исходные данные для этих диаграмм находятся вне доступа (у начальных проектировщиков). Диаграммы содержат большое количество «вручную» скорректированных линий (рядов данных). На некоторых листах диаграмм несколько диаграмм. ЧАСТЬ диаграмм необходимо скорректировать – изменить значения одного или несколько рядов данных. Менять диаграммы (оформление и надписи) НЕЛЬЗЯ ! Формат 93 excell. Никогда не занимался диаграммами поэтому и прошу помощи.
Написал макрос для чтения данных из диагарммы
Код |
---|
Sub Receive_data_from_diag_to_new_sheet()Application.ScreenUpdating = FalseDim NumberOfRows As IntegerDim X As ObjectDim iCol As IntegerDim stRyad As StringDim stSheet As StringWith Worksheets("ChartData") .Cells.ClearEnd WithiCol = 0With ActiveChartstSheet = .NameFor Each X In .SeriesCollection stRyad = CStr(X.Name) iCol = iCol + 1 NumberOfRows = UBound(X.Values) With Worksheets("ChartData") .Cells(1, iCol) = "X-" & stRyad .Range(.Cells(2, iCol), .Cells(NumberOfRows + 1, iCol)) = Application.Transpose(X.XValues) iCol = iCol + 1 .Cells(1, iCol) = "Y-" & stRyad .Range(.Cells(2, iCol), .Cells(NumberOfRows + 1, iCol)) = Application.Transpose(X.Values) End WithNext XEnd With…….End sub |
Так как Excell старый и «свободных» листов на втором проекте меньше 5, а выносить данные в другой файл не хочу решил сделать следующее:
создать три листа. Первый исходные данные, второй корректировки рядов, третий итоговые значения (ИД + Корректировки) для изменения рядов.
На первом листе данные заполняются «щёлканьем» подлежащих корректировке диаграмм из проекта. Фиксирую данные:
Индексы листов
Индексы диаграмм
Индексы рядов диаграмм (имена)
Координаты по Х для каждого ряда
Координаты для Y для каждого ряда.
Проверяя работу макроса руками менял формулы для каждого ряда (=РЯД([Имя];[Значения X];[Значения Y];[Номер графика]) ). Получается «то что доктор прописал».
Собственно вопросы :
Как эти же значения подставить используя VBA, а не «руки»? ссылаться просто на диапазон данных не подходит так как их крутили-вертели при начальном проектировании как угодно и нужно менять именно value и Xvalue)
Как циклом обнаружить вторую диаграмму на листе диаграмм (пример во вложении)?
Заранее спасибо
PS Сына жалко – он до написания мною макроса заносил значения в таблицы вручную ))