为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
阿晨1998 2023-01-11 19:15:59

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;

查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1614条经验 获得超1个赞

估计是控件里面的问题。如果无法解决的话,只有用另一种方法了。就是在发现有已存在的文件时,删除原文件。
if FileExists(dlgSave1.FileName) then
DeleteFile(dlgSave1.FileName);
……
EXCELWORKSHEET.SaveAs(dlgSave1.FileName);

查看完整回答
反对 回复 2023-01-15

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信