本帖最后由 pengchao025 于 2012-03-08 10:13:20 编辑

解决方案 »

  1.   

    你找一个Excel VBA的帮助看看。
      

  2.   

    //插入行
    procedure TExcelApp.InsertRow(ARow:integer);
    begin
         ExcelApplication1.ActiveSheet.Rows.item[inttostr(ARow)+':'+Inttostr(ARow)].Select;
         ExcelApplication1.Selection.Insert(Shift:=xlDown);
    end;
    //插入列
    procedure TExcelApp.InsertCol(ACol:String);
    begin
         ExcelApplication1.ActiveSheet.Columns.item[ACol+':'+ACol].Select;
         ExcelApplication1.Selection.Insert(Shift:=xlToRight);
    end;
    //删除行
    procedure TExcelApp.DeleteRow(ARow:integer);
    begin
          ExcelApplication1.ActiveSheet.Rows.item[inttostr(ARow)+':'+Inttostr(ARow)].Select;
          ExcelApplication1.Selection.Delete(Shift:=xlUp);
    end;
    //删除列
    procedure TExcelApp.DeleteCol(ACol:String);
    begin
        ExcelApplication1.ActiveSheet.Columns.item[ACol+':'+ACol].Select;
        ExcelApplication1.Selection.Delete(Shift:=xlToLeft);
    end;
      

  3.   

    如果不知道语法,可以采用新建一个Excel文件,然后开始录制宏,然后你操作你要操作的内容,然后查看宏,就可以知道程序怎么写了
      

  4.   

    楼上说的方法当然可以;但是录制宏的某些方法在delphi里面实现是不一样的;宏里面是以VB的语法实现的。
      

  5.   

    3楼的意思是自己写函数?
    但是我现在是这些
    ExcelApplication1.ActiveSheet.Rows.item[inttostr(ARow)+':'+Inttostr(ARow)].Select;
    ExcelApplication1.Selection.Insert(Shift:=xlDown);
    都编译不通过啊。ActiveSheet下就没有Rows。。
      

  6.   

    ExcelApplication1.ActiveSheet.Range.[ ''A1'' ].PasteSpecial;
    ExcelApplication1.ActiveSheet.Range.PasteSpecial;
    还有粘贴这种写法也不行。我都是先Select一行,再paste。
      

  7.   

    同意三楼说法。
    Delphi 通过COM调用Excel写法基本和VBA写法一致。
    如何写可以查看VBA帮助,不会VBA,不知道EXCEL元素,用什么写都是白扯。
    Excel2007打开方法:
    Excel打开,点左上选角最大的图标,Excel项。常用里面选上:在功能区显示“开发工具”选项卡。
    在开发工具页面点VISUAL BASIC,然后插入类模块,写个ActiveSheet按F1,然后需要什么就查吧。
      

  8.   

    录了个复制的宏
     Range("A1:G1").Select
     Selection.Copy
     Rows("3:3").Select
     ActiveSheet.Paste
    删除 Selection.Delete Shift:=xlUp
    知道大概意思了,但是DELPHI里activesheet下就没有Paste那些方法,怎么回事了?
      

  9.   

    我也遇到了这个问题,最后 我是控件和xlsRange: Variant混用才解决的,我也知道这种方法不好,但就是没找到更好的办法