Paste в Excel
4 отговора
228 прегледа
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; // Ето тък гърми и не става и тва е :(
{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; // Ето тък гърми и не става и тва е :(
sorry
наистина най-важното не казах:
-при XBook.ActiveSheet.Paste; дава: "paste method of worksheet class failed"
-при XSheet.ActiveSheet.Paste; дава method " ActiveSheet not supported by automation
object"
-при XBook.ActiveSheet.Paste; дава: "paste method of worksheet class failed"
-при XSheet.ActiveSheet.Paste; дава method " ActiveSheet not supported by automation
object"
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-а кой подред е точно).
Значи трябва да е това:
XBook.ActiveSheet.Paste
Най-вероятната причина да се оплаква е, че правиш copy на цял range - 'A5:Ix', а после правиш paste в една клетка. Excel-а вика в такива случаи, че source и destination не match-вали (или нещо такова). Имаш два варианта - или select-вай същия регион в destination sheet-а, или използвай .Paste( ... ) с параметър (destination се казва параметъра, можеш да си видиш в help-а кой подред е точно).
решението
проблемът беше друг. за двата файла трябваше да създам отделни
excel.applicatoin и заспа :)
благодаря за помощта :)
excel.applicatoin и заспа :)
благодаря за помощта :)