我打开了一个excel,然后在上面修改了几个cell的值,之后想保存一下,结果用saveas或直接quit都会弹出个提示框,问我要不要保存//保存当前处理记录的细项列表
procedure SaveItemRec(crec:Trec);
var
  i,rownum:integer;
  str:string;
  wsheet,DestExcel:variant;
begin
  try
    DestExcel:=CreateOleObject('Excel.Application');
    DestExcel.WorkBooks.Open(DestFileName);
    WSheet := DestExcel.ActiveSheet;
    rownum:= WSheet.UsedRange.Rows.count;      //行数    for i:=2 to  rownum do
      begin
        str:=DestExcel.ActiveSheet.cells[i,1];
        if str=inttostr(crec.id) then
          DestExcel.ActiveSheet.rows[i].delete;
      end;
    for i:=0 to cor_main.listbox1.items.Count-1 do
     begin
      DestExcel.ActiveSheet.Rows[2].Insert;
      DestExcel.ActiveSheet.cells[2,1]:=crec.id;
      DestExcel.ActiveSheet.cells[2,2]:=inttostr(i);
      DestExcel.ActiveSheet.cells[2,3]:=crec.rq;
      DestExcel.ActiveSheet.cells[2,4]:=crec.fang;
      DestExcel.ActiveSheet.cells[2,5]:=crec.zy;
      if crec.ifang=1 then
        begin
          DestExcel.ActiveSheet.cells[2,6]:=cor_main.listbox1.Items[i];
          DestExcel.ActiveSheet.cells[2,7]:=crec.fee_dai;
        end
      else if crec.ifang=2 then
        begin
          DestExcel.ActiveSheet.cells[2,7]:=cor_main.listbox1.Items[i];
          DestExcel.ActiveSheet.cells[2,6]:=crec.fee_dai;
        end;
      DestExcel.ActiveSheet.cells[2,8]:=crec.ye;
      DestExcel.ActiveSheet.cells[2,9]:=crec.dwkj;
      DestExcel.ActiveSheet.cells[2,10]:=crec.dfkm;
     end;//..这里怎么保存到打开的excel?用下面的都会出来一个提示框,问要不要保存
//    wsheet.saveas(DestFileName);
//    DestExcel.ActiveWorkBook.Saved := False;
    ExcelClose(DestExcel);  except
    ExcelClose(BackupExcel);
    ExcelClose(DestExcel);
    ShowMessage('无法保存到目标EXCEL文件!');
  end;
end;

解决方案 »

  1.   

    用 wsheet.saveas(DestFileName); 时弹出对话框是 "已经存在...,是否要覆盖"
    用其他的报 "是否保存对...的修改"
    能不能让它保存到原文件而不弹出对话框???
      

  2.   

    设置属性
    WorkBook.Saved := true;
      

  3.   

    搞定了,在DestExcel.ActiveWorkBook.close()里参数添true就可以了
      

  4.   

    yoursly(无物): DestExcel.ActiveWorkBook.close()是再DestExcel.ActiveWorkBook.Saved := False;之后吗?我QQ:283452178
    我也遇到这个问题了。请教你了