我用
uses comobj;
var
ExcelApp: Variant;
begin
ExcelApp := CreateOleObject( 'Excel.Application' );
...
...
ExcelApp.activeworkbook.Saveas(fs); //这一句
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
end;当我保存的文件名已存在时,系统会给我一个提示:此文件已存在,是否覆盖“是”“否”“取消”;
我选择“是”的时候,程序执行下去;选择了“否”“取消”,程序就报错,提示“saveas”动作未完成。怎么才能选择“否”“取消”也能让程序执行下去或返回
达人们帮忙一下,明天结帖
uses comobj;
var
ExcelApp: Variant;
begin
ExcelApp := CreateOleObject( 'Excel.Application' );
...
...
ExcelApp.activeworkbook.Saveas(fs); //这一句
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
end;当我保存的文件名已存在时,系统会给我一个提示:此文件已存在,是否覆盖“是”“否”“取消”;
我选择“是”的时候,程序执行下去;选择了“否”“取消”,程序就报错,提示“saveas”动作未完成。怎么才能选择“否”“取消”也能让程序执行下去或返回
达人们帮忙一下,明天结帖
楼上的,请问 在用try来捕捉异常的时候应该 怎么编写呢?
谢谢
~~~~
Memo1.Lines.Add(ExcelApp.activeworkbook.Saveas(fs));
点“是”的时候返回-1;点“否”“取消”的时候,程序报错,继续执行后无返回值,
SAVEAS事件应该没执行完,这样这么判断异常?郁闷ING
var
ExcelApp: Variant;
begin
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.ActiveWorkBook.Saved := True; ...
...
ExcelApp.activeworkbook.Saveas(fs);
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
end;
试一下
DeleteFile('d:\temp\temp.xls');
try
ExcelApp.activeworkbook.Saveas(fs); //这一句
except
end;
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
在SAVEAS哪里就报了一个错
try
ExcelApp.activeworkbook.Saveas(fs); //这一句
except
end;
begin
if Application.MessageBox('同名文件已存在,'+#13+'是否覆盖保存?'
,MB_ICONQUESTION+MB_YESNO)=IDYES then
DeleteFile(fs)
else
exit;
end;