用DELphi操作EXCEL.
如下程序段:
procedure TPrintExcel.CopyRange(
        SourceRangeBegin,SourceRangeEnd,DestRangeBegin,DestRangeEnd:String);
var
  EA:Variant;
  SourceRange,DestRange: OleVariant;
begin
  EA:=OleExcelApp.ActiveSheet;
  SourceRange:=Ea.Range[SourceRangeBegin, SourceRangeEnd];
  DestRange:=Ea.Range[DestRangeBegin, DestRangeEnd];
  EA.Range[SourceRange].Copy(DestRange);  //不能执行.
end;
改成:
先COPy到剪贴板,然后再复制到指定RANge的方法:
Copy(Range:String);
var
 Ea:Variant;
begin
  EA:=OleExcelApp.ActiveSheet;
  EA.range[Range].copy(EmptyParam)
endPaster(range:String);
var
 EA:Variant;
LCID : Integer;
begin
  EA:=OleExcelApp.ActiveSheet;
  EA.range(Range).select;
  Ea.paste;   //以上两句不行后改成:
  Ea.range[range].PasteSpecial;//还是不行,再改成:
  LCID := GetUserDefaultLCID(); 
   EA.range[Range].select;
  Ea.paste(emptyparam,EmpthParam,lcid);//还是不行.
  
end;
end;请问到底如何解决?在网上搜过不能解决.

解决方案 »

  1.   

    >>EA.Range[SourceRange].Copy(DestRange);  //不能执行.
    SourceRange 直接指定range 有沒有試下??
      

  2.   

    (3)表格的复制与粘贴(copyandPaste)  procedure copyandPaste;  var  v,sheet,range:variant;  begin  v:=createExecl;  sheet:= v.workbooks[1].sheets[1];  range:=sheet.range[sheet.cells[1,1],sheet.cells[39,30]];  range.select; //选定要复制的表格  range.copy; //复制选定的表格  sheet.range[sheet.cells[40,1],sheet.cells[40,1]].select; //选择要粘贴的位置  sheet.paste; //粘贴表格  end; 
    這個代碼又如何??
      

  3.   

    a.拷贝整个工作表:
        ExcelApplication1.ActiveSheet.Used.Range.Copy;b.拷贝指定区域:
        ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴:
        ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;d.从文件尾部开始粘贴:
        ExcelApplication1.ActiveSheet.Range.PasteSpecial;
      

  4.   

    Range("A1:B4").Select
        Selection.Copy
        Range("C6").Select
        ActiveSheet.Paste