Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Копирование областей в Excel


Автор: EKoshelev 21.3.2007, 11:45
Пишу прогу в Delphi. Интегрируюсь с ёкселем при помощи стандартных средств. Специфика в том, что копирование там организовано примерно так:

Range['A1', 'B2'].Copy(чё-то там);

То есть более или менее нормально. А вставка возможна только при помощи PasteSpecial, а просто Paste почему-то нет. 

Range['A1', 'A1'].PasteSpecial(Чё-то там);

Дак вот. Когда копирую в рамках одного листа, то всё нормально. А когда из одной книги в другую, то вставляется какой-то инородный кусок эеселя. Т. е. если на него ткнуть два раза, то можно редактировать и т. п. Короче, мне надо чтобы копировалось по человечески. Может можно как-нибудь это сделать при помощи PasteSpecial?

Автор: Genyaa 21.3.2007, 13:40
В Excel "нормальное" копирование делается с помощью того же Copy. В параметрах нужно только указать параметр Destination:

Range(копируемый).Copy Destination:=WorkBooks(какая нужно).Worksheets(какой нужно).Range(куда именно) 

и должно получиться.

А PasteSpecial - он нужен тоже, но для специальных случаев.

Автор: EKoshelev 22.3.2007, 09:21
Genyaa, спасибо за подсказку. Я уже именно так и сделал. Надо признать, что я тему немного не правильно сформулировал. Копирование было глючным при копировании не между книгами, а между процессам. Короче, я свои проблемы решил.

Тему наверное закрыть можно...

Автор: mihanik 25.3.2007, 09:33
EKoshelev, закрывать не буду, но решённой помечу...
 smile 

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