Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Timofey
Зарегистрирован: 27.04.2006 Сообщения: 6
|
Добавлено: Чт Апр 27 2006 18:05 Заголовок сообщения: Как изменить параметры диаграммы Excel из VBA. |
|
|
Проблема такая.
Есть данные (40 столбцов, 10000 строк), которые могут меняться почти случайным образом. Их надо анализировать сравнивая столбцы друг с другом. Проще всего это делать при помощи диаграммы. Каким образом можно поменять параметры диаграммы (добавить/удалить ряд, обновить), которая была бы на одном листе с данными?
Менять данные в ручную долго. Потому что нельзя предсказать какое количество и какие столбцы надо сравнить. Ряды надо добавлять, удалять сравнивая друг с другом. При анализе одной выборки может понадобитя несколько сотен изменений. Выносить диаграмму на отдельный лист тоже не хотелось бы.
Код который определяет какой столбец надо добавить/удалить и передавал бы эти параметры диаграмме я состряпаю, только не могу позиционироваться на определённой диаграмме (их у меня несколько, на нескольких листах) и впихнуть в неё новые данные. Пробовал через конструктор макросов, толку никакого нет. При попытке запустить такой макрос VBA выдаёт ошибку. Все попытки подкорректировать макрос , тоже без успешные.
Кто сталкивался с этим помогите. |
|
Вернуться к началу |
|
|
Princess
Зарегистрирован: 05.10.2005 Сообщения: 48
|
Добавлено: Пт Апр 28 2006 11:30 Заголовок сообщения: |
|
|
Мне приходилось работать с графиками. Вот кусочек рабочего кода:
Worksheets(sh(11)).ChartObjects(12).Activate
ActiveChart.SetSourceData Source:=Worksheets(sh(11)).Range(Worksheets(sh(11)).Cells(1, 40), Worksheets(sh(11)).Cells(count_records, 40)), PlotBy:=xlColumns
With ActiveChart
.SeriesCollection(1).Border.ColorIndex = 1
.SeriesCollection(1).Border.Weight = 3
.SeriesCollection(1).XValues = Worksheets(sh(11)).Range(Worksheets(sh(11)).Cells(1, 36), Worksheets(sh(11)).Cells(count_records, 36))
.SeriesCollection(1).ChartType = xlLine
.HasTitle = True
.ChartTitle.Characters.Font.Size = 10
.ChartTitle.Characters.Text = "Ñïðýä"
.PlotArea.Interior.ColorIndex = 2
.PlotArea.Border.LineStyle = xlDot
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.HasLegend = False
With .Axes(xlValue)
.HasMajorGridlines = True
.MajorGridlines.Border.ColorIndex = 1
.MajorGridlines.Border.LineStyle = xlDot
.TickLabels.Font.name = "Arial Cyr"
.TickLabels.Font.Size = 8
.TickLabels.Font.Bold = False
.TickLabels.Font.Italic = False
End With
.Axes(xlCategory, xlPrimary).CategoryType = xlAutomaticScale
.Axes(xlCategory, xlPrimary).TickLabels.Font.Size = 8
.Axes(xlCategory, xlPrimary).TickLabels.Orientation = xlUpward
End With
ActiveWindow.Visible = False
Остались вопросы, спрашивай! |
|
Вернуться к началу |
|
|
Timofey
Зарегистрирован: 27.04.2006 Сообщения: 6
|
Добавлено: Пт Апр 28 2006 15:21 Заголовок сообщения: |
|
|
Спасибо! Помогло! |
|
Вернуться к началу |
|
|
|