savedlg已经设置ofOverwritePrompt,没问题,但是当文件已存在的时候,选择覆盖,然后会弹出Microsoft Excel的窗口提示是否覆盖,这时如果选择是,不会出问题,而选择否,就会报某个类的错误,后面的代码无法执行,请问这个问题要怎么解决呢?if dlgSave1.Execute thenbegintryEXCELWORKSHEET.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);finallyEXCEL.Disconnect ;EXCEL.Quit ;close;end;end;
1 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
估计是控件里面的问题。如果无法解决的话,只有用另一种方法了。就是在发现有已存在的文件时,删除原文件。
if FileExists(dlgSave1.FileName) then
DeleteFile(dlgSave1.FileName);
……
EXCELWORKSHEET.SaveAs(dlgSave1.FileName);
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消