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 關注
- 163 瀏覽
添加回答
舉報
0/150
提交
取消