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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2012, 21:11   #1
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
Восклицание Диаграмма Excel через Delphi

Заполняю ячейки Excel из StringGrid
Код:
for Col:= 0 to StringGrid.ColCount -1 do
 for Row:= 0 to StringGrid.RowCount -1 do
 Sheet.Cells[Row + 1, Col +1]:= StringGrid.Cells[Col, Row + 1];
Затем добавляю диаграмму на этот же Sheet в Excel
Код:
MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects.Add(100, 5, 300, 200);
Получаю данные диаграммы
Код:
DataRange:= MyExcel.ActiveWorkBook.ActiveSheet.UsedRange;
DataRange: OleVariant;
Затем активирую (выделяю) построенную диаграмму и пытаюсь ввести в нее параметры
Код:
 Chart:= MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects[MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects.Count];
 Chart.Chart.ChartWizard(DataRange, 4, EmptyParam);
Но программа останавливается с ошибкой "Член группы не найден" на строке
Код:
Chart:= MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects[MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects.Count];
Помогите исправить эту ситуацию, и понять что и как...
kta87 вне форума Ответить с цитированием
Старый 27.08.2012, 22:24   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Диаграммы так не строил, но бросилось в глаза Count в ошибочной строке, уверен что должно быть Count-1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.08.2012, 22:36   #3
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

изменение сроки
Код:
Chart:= MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects[MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects.Count];
на
Код:
Chart:= MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects[MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects.Count-1];
ситуацию не поменяло!

П.С. По идее эта строка
Код:
Chart:= MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects[MyExcel.ActiveWorkBook.ActiveSheet.ChartObjects.Count];
выделяет последнюю созданную диаграмму, вот только параметр Count меня тоже смущает. Не как не могу понять в чем ошибка!?

Последний раз редактировалось kta87; 27.08.2012 в 23:11.
kta87 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диаграмма в Excel Yakut311 Microsoft Office Excel 4 12.07.2011 10:57
Диаграмма в Excel на C# Shurik_321 Общие вопросы .NET 1 15.10.2010 10:44
3D диаграмма Excel Goldenbrown Microsoft Office Excel 2 05.04.2010 19:38
Диаграмма в Excel Gapro Общие вопросы Delphi 7 10.12.2009 18:35
Диаграмма в Excel!!!!! oblachko БД в Delphi 1 30.06.2009 07:34