猿问

设置了worksheet的数据,再用savedlg选择一个新文件,使用saveas另存为,出现了问题

savedlg已经设置ofOverwritePrompt,没问题,但是当文件已存在的时候,选择覆盖,然后会弹出Microsoft Excel的窗口提示是否覆盖,这时如果选择是,不会出问题,而选择否,就会报某个类的错误,后面的代码无法执行,请问这个问题要怎么解决呢?
if dlgSave1.Execute then
begin
try
EXCELWORKSHEET.SaveAs(dlgSave1.FileName);
//执行这段代码时会再次提示是否覆盖,有没有办法使这一步直接默认覆盖,或者点否的时候不会报错呢,或者其他的方法解决

mmo1.Lines.Add('保存成功!请到'+ dlgSave1.FileName +'查看结果文件!');
Delay(500);
mmo1.Lines.Add('即将打开您选择的目录!');
Delay(500);
strFileName := dlgSave1.FileName ; //路径
ShellExecute(0, nil, PChar('explorer.exe'),PChar('/e, ' + '/select,' + strFileName), nil, SW_NORMAL);
finally
EXCEL.Disconnect ;
EXCEL.Quit ;
close;
end;
end;

阿晨1998
浏览 211回答 1
1回答

小怪兽爱吃肉

估计是控件里面的问题。如果无法解决的话,只有用另一种方法了。就是在发现有已存在的文件时,删除原文件。if FileExists(dlgSave1.FileName) thenDeleteFile(dlgSave1.FileName);……EXCELWORKSHEET.SaveAs(dlgSave1.FileName);
随时随地看视频慕课网APP
我要回答