急:Excel复制问题(100分)

  • 主题发起人 主题发起人 kuux
  • 开始时间 开始时间
K

kuux

Unregistered / Unconfirmed
GUEST, unregistred user!
现需求在Excel中将Sheet2中的一块内容,复制到Sheet1中某一特定位置,不知应该如何写
我用的是Delphi带的ExcelWorkApplication系列控件??
 
给篇文章你看下!
http://delphibbs.com/delphibbs/dispq.asp?lid=737517
 
在Excel中录制一个宏。看看它的vba代码。
copy->paste.略加修改就成了。
 
to eastweast:
我录制了,并且改了一下,但它提示错误,可能是我学艺不精,改得不好,不知老兄,能不能帮帮忙,
 
在USES中增加 ComObj 单元

下面代码能够实现将SHEET2中B3到D8的数据块复制到SHEET1的A1开始的区域。
procedure TForm1.Button1Click(Sender: TObject);
var ExcelApp: Variant;
begin
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.WorkBooks.Open( 'C:/book1.xls' );
ExcelApp.WorkSheets['Sheet2'].Activate;
ExcelApp.ActiveSheet.Range[ 'B3:D8' ].Copy;
ExcelApp.WorkSheets[ 'Sheet1' ].Activate;
ExcelApp.ActiveSheet.Range[ 'A1' ].PasteSpecial;
ExcelApp.Visible := True;


end;

 
to loxtln:
可我用的是控件呀,不是Ole,应该怎么办,帮帮忙,老兄
 
ExcelWorksheet1.Range['C10','i19'].Copy((ExcelWorkbook1.Worksheets[2] as _WorkSheet).Range['C7','C7']);
 
to 小刚:
我另请教一个问题,我的Excel打开后,用Quit,它不能完全从内存中清除,进程还在,使得我无法再打开另一张,不知有什么办法?
 
我用如下方法好像没有问题,你试试:
ExcelApplication1.Quit;
ExcelApplication1.Destroy;
 
将ExcelApplication1打开的excel 文件存盘退出时,会同时将其他打开的excel文件一同退出,不知你们有没有这样的问题,我是用ole对象进行操作就没有上述问题。
 
to 小刚:
不行,地址错误
 
再试试这样退出Excel:
ExcelApplication1.AutoQuit :=true;
ExcelApplication1.Disconnect;
我试验了没有问题
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1419142
 
to 小刚:
好奇怪,我发现一个问题,就是Excel进程只有在调用它的这个程序全部退出后,才会失放,只退出调用它的窗体没有用,如果在管理器中直接KillExcel进程,那调用它的程序就不能用了,为什么
 
thanks,可以了,100分,别觉得少
 
后退
顶部