Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Ошибка при копировании данных


Автор: AleksandraN 24.9.2010, 12:16
Доброго времени суток!
Копирую данные из одной книги Excel в другую следующим образом:
Код


       Col := Query.WorkSheets[1].UsedRange.Columns.Count;
       Row := Query.WorkSheets[1].UsedRange.Rows.Count;
       MyRange := Query.WorkSheets[1].Range[Query.WorkSheets[i].Cell[5, 1], Query.WorkSheets[i].Cell[Row, Col]];
       MyRange.Copy(EmptyParam);
       Sheet := Pattern.WorkSheets[1];
       Sheet.Paste(Sheet.Range['A1', EmptyParam], EmptyParam);



на строке MyRange := Query.WorkSheets[1].Range[Query.WorkSheets[i].Cell[5, 1], Query.WorkSheets[i].Cell[Row, Col]]; появляется ошибка - 
Method  "Cell" no supported by automation object
ну то есть я не правильно выделяю область, которю хочу скопировать...как правильно это сделать, если я знаю номера сторок и столбцов границ области?

Автор: Albinos_x 24.9.2010, 15:16
Код

MyRange := Query.WorkSheets[1].Range['E1', Char(Ord('A')+Col-1)+IntToStr(Row)];

это если за пределы диапазона A..Z не вылазиешь... если можешь выскочить то посложнее... используй функцию описанную в статье... даю прямую ссылку на пост: http://forum.vingrad.ru/index.php?showtopic=84634&view=findpost&p=651663

Добавлено через 2 минуты и 2 секунды
к тому же обрати внимание, что  у тебя MyRange := Query.WorkSheets[1].Range.... а в параметре: WorkSheets[i].Cell - это может вызвать много непонятных глюков, которые будешь долго искать...

Автор: AleksandraN 27.9.2010, 11:37
Albinos_x,  спасибо.
Кстати, вот так тоже работает:

Код

  MyRange := Query.WorkSheets[1].Range[Query.WorkSheets[1].Cells.Item[5, 1], Query.WorkSheets[1].Cells.Item[Row, Col]];

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)