窗体上,有ExcelApplication1 , ExcelWorkBook1 , ExcelWorkSheet1 三个控件。代码如下uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, FileCtrl, Menus,
  DBGridEhGrouping, GridsEh, DBGridEh, StrUtils, ExcelXP, OleServer, ComObj,
  Excel2000;
procedure TForm3.N11Click(Sender: TObject);    //统计综合概算
  var
  lujing:string;  v:OleVariant;
begin
  ExcelApplication1.workbooks.Add(v,0); //新建 1个工作本
  ExcelWorkBook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
  ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);
  ExcelWorkSheet1.Cells.Item[2,3].FormulaR1C1:='单位文件名称';
  ExcelWorkBook1.SaveAs('e:\sss.xls',v,v,v,v,v,v,v,v,v,v,0);  ExcelWorkBook1.Save ;
  excelworkbook1.Close;
  excelworksheet1.Disconnect;
  excelworkbook1.Disconnect;
  excelapplication1.Disconnect;  excelapplication1.Quit;
end;运行,出现   OLE error 800A03EC求解
ps:uses出现excelxp和excel2000,应该是跟我 家里和单位,excel装的版本不一样有关系,但上述错误均出现

解决方案 »

  1.   

    这类错误一般是传错了参数,查下VBA的帮助。
      

  2.   

    ExcelWorkSheet1.Cells.Item[2,3].FormulaR1C1:='单位文件名称';这句是错的,FormulaR1C1是公式输入,后面赋值内容应该是一个公式
    具体的用法自己去百度吧,或者打开Excel看看FormulaR1C1的VBA方法是怎么写的还有:ExcelWorkSheet1.Cells.Item[2,3]改成ExcelWorkSheet1.Cells[2,3]
      

  3.   

    呵呵,又上网查了资料,然后自己摸索,搞定了,确实是参数传递错误
    贴出正确的,给再有疑问的兄弟解惑
    excelapplication1.ActiveWorkBook.SaveAs(savedialog1.filename,xlNormal,'','',False,False,v,v,v,v,v,0);改为这样写即可