在delphi中,怎样复制一个当前激活的工作簿?
本人用Eworkbook.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet方法,然后用copy,paste方法复制新的工作簿,可是不能复制原来的页面格式,页边距等属性,只能重新设置新页面的页面属性,请大家多多指教!
本人用Eworkbook.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet方法,然后用copy,paste方法复制新的工作簿,可是不能复制原来的页面格式,页边距等属性,只能重新设置新页面的页面属性,请大家多多指教!
呵呵,自己改一下吧
Cells.Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste俺是从宏里取出来的
我也困扰过,没办法,改用循环语句赋值
动态生成其它的工作簿,因为数据可能不止一页,而且数据的最后一页跟其他的页面不一样。
所以在模板中做了两个工作簿,一个是普通页面,另一个是最后一个页面。当换页时复制普通的页面
当最后一页时用那个最后页面。现在的问题是复制普通页面时不能把原来的页面设置复制过去,这样版式就不一样了,因为普通页是经过页面设置的。本来想用rave或其他报表文件做的,可是用户要求打印时要可以修改数据,所以只能用excel来做了。做时就遇上了上边的问题。大家有什么办法么?多多指教。
//sSourceFile:源文件,当然应该是xls文件了
//sSourceSheet:要拷贝的sheetfunction CopySheet(sSourceFile, sSourceSheet: String): Boolean;
var
wbTemp,vLastSheet:Variant;
begin
Result:=true;
vLastSheet:=FWorkBook.Sheets[FWorkBook.Sheets.Count];
wbTemp:=FWorkBook.Application.Workbooks.Open(sSourceFile);
try
try
wbTemp.Sheets[sSourceSheet].Activate;
vLastSheet.Activate;
wbTemp.Sheets[sSourceSheet].Copy(EmptyParam,vLastSheet);
except
Result:=false;
end;
finally
wbTemp.Close;
wbTemp:=Unassigned;
end;
end;
动态增加一个工作表,我想把第一个工作表的内容用程序控制复制到第二个工作表上,这一步应该容易,用sheet.copy,sheet.paste就行了,问题是第一个工作表的页面格式已经排好了,我想复制时第二个工作表的页面格式也和第一个页面格式一样,有什么好方法么?
下面方法
//打开一个文件
Excel.WorkBooks.Open(FileName);
//拷贝出新的一份,不需要再粘贴了,否则就不行了,如果就拷贝后,你可以将WorkBooks[2]
// 从新命名
Excel.WorkBooks[1].Sheets.Copy;