chipius
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Добрый день! Такая ситуация: существует шаблон рабочего листа с табличками и диаграммами (данные они берут из этих же таблиц), он хранится в отдельной книге, назовем ее "исходной". Стояла задача написать макрос, который бы создавал новую книгу с пользовательским количеством листов, основанных на существующем шаблоне из "исходной" книги. Задача вроде бы была решена: макрос копировал существующий шаблон из "исходной" книги и "размножал" его в новой книге (по принципу Ctrl+C - Ctrl+V), но возникла проблема: все диаграммы в новой книге за данными лезут в "исходную", из которой копировался шаблон. Так вот вопрос: есть ли какой-нибудь способ заставить диаграммы брать данные именно с тех листов на которых они находятся? Пробовал переназначать уже на новом листе диаграммам диапазоны данных - получалось только с одной диаграммой, а остальные оставались без изменений. ActiveSheet.ChartObjects("Chart 8").Activate ActiveChart.SetSourceData Source:=Range("B15:B17,D15:D17,U15:U17,Y15:Y17") ActiveChart.SeriesCollection(1).Delete ' эта строчка для удаления лишнего ряда данных с диаграммы ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range("D15,U15,Y15") ' здесь задаются значения по оси Х ActiveSheet.ChartObjects("Chart 3").Select ActiveSheet.ChartObjects("Chart 3").Activate ActiveChart.SetSourceData Source:=Range("B15,B29,B33,D15,D29,D33,U15,U29,U33,Y15,Y29,Y33") ActiveChart.SeriesCollection(1).Delete ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range("D15,U15,Y15") Над кодом прошу сильно не смеяться. В VBA пока-что новичек. По-этому тыкаюсь везде немного наугад. |