Paste в Excel

4 отговора 228 прегледа
#1

Paste в Excel

Искам да копирам селекция от един файл и да пействам данните в друг екселски файл:
{Copy ot edinia fail}
XBook2.Save;
XSheet2:=XBook2.Sheets['Sheet1'];
XSheet2.Activate;
XSheet2.Range['A5:I'+inttostr(i)].Select;
XApp.Application.CutCopyMode:=False;
XSheet2.Range['A5:I'+inttostr(i)].Copy;

{тук отварям другия файл}
XBook:=XApp.WorkBooks.Open(sfile);
XBook.SaveAs(dfile);

XSheet:=XBook.Sheets[Sheet1];
XSheet.Activate;

{Paste v originalnia fail}
XSheet.Range['A5'].Select;
XBook.ActiveSheet.Paste; // Ето тък гърми и не става и тва е :(

Отговор
в отговор на chovek #2

Re: Paste в Excel

Е сега ако кажеш как точно гърми и какво съобщение дава...

Отговор
в отговор на Formal #3

sorry

наистина най-важното не казах:
-при XBook.ActiveSheet.Paste; дава: "paste method of worksheet class failed"

-при XSheet.ActiveSheet.Paste; дава method " ActiveSheet not supported by automation

object"

Отговор
в отговор на chovek #4

Re: sorry

XSheet.ActiveSheet.Paste не може да се използва, защото sheet-а си няма active sheet (то си е безмислено - ако имаш една книга, можеш да кажеш, че е отворена на определена страница, ама ако имаш една страница ... ?!)
Значи трябва да е това:
XBook.ActiveSheet.Paste

Най-вероятната причина да се оплаква е, че правиш copy на цял range - 'A5:Ix', а после правиш paste в една клетка. Excel-а вика в такива случаи, че source и destination не match-вали (или нещо такова). Имаш два варианта - или select-вай същия регион в destination sheet-а, или използвай .Paste( ... ) с параметър (destination се казва параметъра, можеш да си видиш в help-а кой подред е точно).

Отговор
в отговор на Formal #5

решението

проблемът беше друг. за двата файла трябваше да създам отделни
excel.applicatoin и заспа :)

благодаря за помощта :)

Отговор