程序如下
按照程序打开了己存的EXECL文件,我想让用户修改后保存。前面都 对了,用户修改完自己在EXECL中选另存为也对,就是在关闭EXECL时保存时出错,高手看看
procedure Tfrm_rslr.DBGrid1CellClick(Column: TColumn);
var MSExcel :variant ;
begin
SaveDialog1.Filter:='*.xls|*.xls';
SaveDialog1.DefaultExt:='xls';
if (dbgrid1.Fields[1].AsString='pcm') or (dbgrid1.Fields[6].AsString='阿克苏') then
  begin
     if application.MessageBox('你确认要启动excel界面吗?','请你回答',mb_yesno+mb_defbutton2)<> idno then
        begin
        MSExcel := CreateOleObject( 'Excel.Application' );
        MSExcel.Visible := True;
        MSExcel.Caption := '阿克苏通讯管理系统正在调用 Microsoft Excel';
        MSExcel.WorkBooks.Open(ExtractFilePath(Application.ExeName )+'mess\SDH光通讯配线表\阿克苏城网配线表.xls');
        end
    else
      try
      excelapplication1.Connect;
      except
      messagedlg('excel 可能未安装!',mterror,[mbok],0);
      abort;
    end;
     if  savedialog1.Execute then
         begin
         MSExcel.ActiveWorkBook.SaveAs(SaveDialog1.FileName);
         MSExcel.ActiveWorkBook.Saved:=True;
         MSExcel.Quit;
         end
         else
        ShowMessage('保存失败,错误警报');
        end;
        end;end.

解决方案 »

  1.   

    25) 关闭工作簿:
    ExcelApplication1.WorkBooks.Close;26) 退出 Excel:
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;MSExcel := unsigned;
      

  2.   

    按照程序打开了己存的EXECL文件,我想让用户修改后保存。前面前面可以打开,用户修改完自己在EXECL中选另存为也对,就是在关闭EXECL时保存时出错,高手看看
      

  3.   

    高手看看呀我急呀,老是显示只读,不能保存
    var MSExcel,WorkBook :variant ;  begin
        if (dbgrid1.Fields[1].AsString='PCM') and (dbgrid1.Fields[6].AsString='阿克苏') then
         begin
            if application.MessageBox('你要启动excel界面吗?','请你确认',mb_yesno+mb_defbutton2)<>
            idno then
                 begin
                 MSExcel := CreateOleObject( 'Excel.Application' );
                 WorkBook :=CreateOleObject('Excel.Sheet');
                 MSExcel.Visible := True;
                 MSExcel.Caption := '阿克苏通讯管理系统正在调用 Microsoft Excel';
                 MSExcel.WorkBooks.Open(ExtractFilePath(Application.ExeName )+'mess\SDH光通讯配线表\阿克苏城网配线表.xls');
                 end
                 else
                 exit;
            try
                excelapplication1.Connect;
            except
                messagedlg('Microsoft Excel 可能未安装!',mterror,[mbok],0);
                abort;
            end;
            excelapplication1.Caption := '阿克苏电力通讯系统正在调用Microsoft Excel';
                     begin
                       if savedialog1.Execute then
                    begin
                            try
                           ExcelWorksheet1.SaveAs(savedialog1.FileName);
                            application.MessageBox('保存成功','恭喜',mb_ok);
                        except
                            application.MessageBox('保存失败','错误警报',mb_ok);
                        end;
                        end;
                       // excelapplication1.Disconnect;
                      //  excelapplication1.Quit;
                        end;
                        end;     end; end.