![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с офисом 2000 [D7, XP]
nickmas © (2006-04-08 02:53:00)Уважаемые мастера! Помогите разобраться в следующей проблеме:
Используя позднее связывание, создаю график в Excel-e:
...
Excel.Charts.Add;
Excel.Charts[1].ChartType:=xlXYScatterSmooth;
Добавляю данные в график:
Excel.Charts[1].SeriesCollection.NewSeries;
Excel.Charts[1].SeriesCollection[1].XValues:=VarArrayOf([xsr1,xsr2,xsr3]);
Excel.Charts[1].SeriesCollection[1].Values:=VarArrayOf([ysr1,ysr2,ysr3]);
И теперь привязываю данный график к листу с названием "Результат":
Excel.ActiveChart.Location(xlLocationAsObject,'Результат');
Так вот проблема в том, что у меня стоит 2003 офис и все нормально работает. Но..., как выяснилось позже, не работает на 2000 офисе. А именно: не хочет привязывать график к данному листу.
Может кто укажет, в чем тут моя ошибка?
Заранее благодарен!!!
nickmas (2006-04-10 08:50:00) [21]Excel у меня Variant
nickmas (2006-04-10 08:47:00) [22]Дело в том, что не со всеми свойствами объекта можно работать с трех сторон (по крайней мере у меня не получалось). Вот, например, чтобы изменить размер диаграммы, получилось только таким способом
Excel.Sheets[2].ChartObjects[1].Height:=139;
Excel.Sheets[2].ChartObjects[1].Width:=239;
а также изменить положение - тоже таким же способом
Excel.Sheets[2].ChartObjects[1].Left:=99;
Excel.Sheets[2].ChartObjects[1].Top:=14;
Да и, как мне кажется, не в этом дело. Лишь бы обращение к объекту было верным (для офиса 2003 верно - проверено).
А для офиса 2000... Может там нужно по другому как-то обращаться к данному объекту (хотя макросы пишутся одинаково, что в 2000, что в 2003). Или нужно подключить чего? (Excel2000 у меня подключен, а также ExcelXP и Excel97)
В общем жду совета, мастера!
sniknik (2006-04-10 08:38:00) [23]> Не ужели нет ни у кого никаких мыслей?
правильная мысль... поставь себе "офис 2000" и отлаживай/работай с ним если хочеш чтобы с ним тоже работало, и это не только иза данного конкретного глюка, а изза принципа поддерживаемости продуктов, сверху вниз она есть, а снизу вверх еще не придумали как.
кстати какого типа у тебя переменная Excel? вариант, или конкретного? если конкретного то какой модуль используется ExcelXP или Excel2000, и если взять 2000 то в нем у интерфейсов вообще есть те методы что ты используеш (на которых глюки)?
ЮЮ (2006-04-10 06:28:00) [24]Excel.Charts[1]
Excel.ActiveChart
Excel.Sheets[2].ChartObjects[1]
Может не стоит работать с объектом с трех разных сторон, а остановиться на одной, успешно работающей?
nickmas (2006-04-10 04:15:00) [25]Не ужели нет ни у кого никаких мыслей?
nickmas (2006-04-09 20:02:00) [26]Кстати, ошибку выдает программа, когда я обращаюсь к графику после его создания:
Excel.Sheets[2].ChartObjects[1].Height:=139;
Excel.Sheets[2].ChartObjects[1].Width:=239;
А строку
Excel.ActiveChart.Location(xlLocationAsObject,'Результат');
видимо проходит, но не выполняет.
(Sheets[2] = 'Результат')
nickmas (2006-04-08 20:28:00) [27]Дело в том, что одинаковые - я об этом тоже думал!?
YurikGL (2006-04-08 17:46:00) [28]Посмотри на соответсвующие макросы 2000-го и 2003-го офисов... возможно, они разные...
nickmas (2006-04-08 16:06:00) [29]Я пользуюсь MS Office 2003. Но меня также интересует, чтобы это приложение работало с любым офисом.
balepa (2006-04-08 06:59:00) [30]Ошибка втом что ты пользуешся MS Office 2000