Создание диаграммы на основе массива

Программирование на Visual Basic for Applications
Grossu
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.04.2005 (Пн) 9:43

Создание диаграммы на основе массива

Сообщение Grossu » 27.04.2005 (Ср) 11:40

Возможно ли создать диаграмму в EXCEL на основе какого-нибудь массива? Массив представляет собой некие данные взятые с формы. И принадлежит типу Double.
Или все-таки придется массив переносить сначала на скрытый лист, и с него уже строить диаграмму (скажу откровенно, этот вариант меня не очень устраивает).
Заранее спасибо.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.04.2005 (Ср) 11:50

Можно. Добавляешь пустой чарт, потом делаешь что-то вроде:

Код: Выделить всё
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Values = "={твои значения через запятую}"


В Values нужно записать строку, в которой будет написано "=", а дальше внутри фигурных скобок через запятую значения элементов твоего массива.

Grossu
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.04.2005 (Пн) 9:43

Сообщение Grossu » 27.04.2005 (Ср) 13:19

Массив в виде mydata(i) может содержать порядка ста элементов. Правильно ли я понимаю, что нужно писать [mydata(1), mydata(2) .... mydata(n)]. Или есть более вменяемый способ. Через For Next не получается.

gacol
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2004 (Вт) 13:13
Откуда: Нов. Уренгой

Сообщение gacol » 27.04.2005 (Ср) 13:56

Можно прямо задать имя массива
Dim X(80) As Integer
ActiveChart.SeriesCollection(1).Values = X
Но с сотней элементов не проходит.

Похожее обсуждали на
http://forum.codenet.ru/showthread.php? ... adid=22761

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.04.2005 (Ср) 13:58

Ну уж и не получается...

Код: Выделить всё
mystring="={" & CStr(mydata(1))
For i=2 to UBound(mydata)
  mystring=mystring & "," & CStr(mydata(i))
Next i
mystring=mystring & "}"

ActiveChart.SeriesCollection(1).Values = mystring



Grossu
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.04.2005 (Пн) 9:43

Сообщение Grossu » 27.04.2005 (Ср) 16:30

uhm писал(а):Ну уж и не получается...

Код: Выделить всё
mystring="={" & CStr(mydata(1))
For i=2 to UBound(mydata)
  mystring=mystring & "," & CStr(mydata(i))
Next i
mystring=mystring & "}"

ActiveChart.SeriesCollection(1).Values = mystring




Спасибо. Действительно все получилось. Но до чего же хитроумный способ. Не очень гибко - неужели нет в VBA более достойного механизма.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList