Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2012, 19:26   #1
yakim0t0
Новичок
Джуниор
 
Регистрация: 26.06.2012
Сообщений: 2
По умолчанию построение отрезков (точечных диаграмм)

Всем привет!
Прошу помощи!
Дана следующая таблица (см. рисунок). На самом деле она значительно больше.



Каждые две пары точек (x; y1), (x; y2), ..., (x; y500) нужно соединить, т.е. в конечном счете получить несколько отрезков.
На листе уже есть пустая диаграмма (называется "Диаграмма 4"), т.е. нужно просто вставлять в нее значения.

Вот мой код:

Код:
Sub Macro()

	Dim lRow As Long, i As Long
  	Application.ScreenUpdating = False
  	lRow = Cells(Rows.Count, 1).End(xlUp).Row
    
	For i = 1 To lRow Step 2

	'
	' тут еще код (к вопросу не относится)
	'

	ActiveSheet.ChartObjects("Диаграмма 4").Activate
  	 ActiveChart.SeriesCollection.NewSeries
   	 ActiveChart.SeriesCollection(i).Name = "=Cells(i+1, Chr(34) & C & Chr(34))"
   	 ActiveChart.SeriesCollection(i).XValues = "=range(cells(i, Chr(34) & D & Chr(34)),cells(i, & Chr(34) & E & Chr(34)))"
    	 ActiveChart.SeriesCollection(i).Values = "=range(cells(i+1, Chr(34) & D & Chr(34)),cells(i+1, Chr(34) & E & Chr(34)))"

	Next i

End Sub
Ошибка: application-defined or object-defined error

Помогите исправить.
Очень жду!
yakim0t0 вне форума Ответить с цитированием
Старый 26.06.2012, 19:53   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Попробуйте так:
Код:
     ActiveChart.SeriesCollection(i).Name = Cells(i + 1, "C")
     ActiveChart.SeriesCollection(i).XValues = Range(Cells(i, "D"), Cells(i, "E"))
     ActiveChart.SeriesCollection(i).Values = Range(Cells(i + 1, "D"), Cells(i + 1, "E"))
Если не пойдет - приложите файл XLS.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 26.06.2012, 20:15   #3
yakim0t0
Новичок
Джуниор
 
Регистрация: 26.06.2012
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Попробуйте так:
Код:
     ActiveChart.SeriesCollection(i).Name = Cells(i + 1, "C")
     ActiveChart.SeriesCollection(i).XValues = Range(Cells(i, "D"), Cells(i, "E"))
     ActiveChart.SeriesCollection(i).Values = Range(Cells(i + 1, "D"), Cells(i + 1, "E"))
Если не пойдет - приложите файл XLS.
Спасиб за помощь, но, к сожалению не пошло!(
Приложил файл. Диаграмму надо построить на 2-м листе, первый только для расчетов.


=================================== =================================== =======================

Все понял, кажется это из-за i в SeriesCollection(i).
Надо было просто добавить еще одну переменную.
Вложения
Тип файла: rar Алгоритм - копия (2).rar (52.9 Кб, 17 просмотров)

Последний раз редактировалось yakim0t0; 26.06.2012 в 20:22.
yakim0t0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с широтой и долготой в рамках точечных диаграмм AigerimSa Microsoft Office Excel 0 22.02.2012 14:13
Построение диаграмм из БД ChiToK Помощь студентам 3 21.04.2008 10:38
Построение диаграмм Smith777 Помощь студентам 2 26.02.2008 15:26