打开excel后关闭,就出现如下提示:
是否保存对XXX.xls的更改?Microsoft Office Excel在打开上次由Excel的早期版本保存的文件时会重新计算公式。 要按是 否 或取消才行
如何不弹出这个提示框?
我是这样打开的
var
ExcelID: Variant;
begin
if opendialog1.Execute then
begin
ExcelID:=CreateOleObject('Excel.Application');
try
ExcelID.workbooks.open(opendialog1.FileName,True,true,true,true,true,true);
ExcelID.visible:=False;
......
finally
ExcelID.quit;
end;
end;

解决方案 »

  1.   

    那就先把workbooks关闭。workbooks.Close(SaveChanges, FileName, RouteWorkbook)SaveChanges    Variant 类型,可选。如果工作簿没有改变则忽略此参数;如果工作簿发生了改变并且在另外的窗口中也打开了该工作簿,则仍然忽略此参数;如果工作簿发生了改变并且没有在另外的窗口中打开,则此参数将指定是否在工作簿中保存所发生的更改。取值与操作如下表所示:取值 操作 
    True 将改变保存到工作簿。如果该工作簿尚未命名,则使用 FileName 所指定的名称。如果省略 FileName 参数,则要求用户输入文件名。 
    False 不将改变保存到此文件。 
    省略 显示一个对话框,要求用户决定是否保存所作的更改。 
    FileName   Variant 类型,可选。以此文件名保存所作的更改。RouteWorkbook   Variant 类型,可选。如果指定工作簿不需要传送给下一个收件人(没有传送名单或已经传送),则忽略该参数。否则, Microsoft Excel 将按照下表所示处理传送。取值 意义 
    True 将工作簿传送给下一个收信人。 
    False 将工作簿传送给下一个收信人。 
    省略 显示一个对话框,要求用户决定是否传送此工作簿。 
      

  2.   

    ExcelID.ActiveWorkBook.Saved := True;
      

  3.   

    只能使用ExcelID.workbooks.Close
    如果带参数 则报错 不带参数 还是弹出对话框
      

  4.   

    ExcelID.ActiveWorkBook.Saved := True;
    这个可以了 谢谢 
    结帖