全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3627
推到 Plurk!
推到 Facebook!

讀取用OLE內含巨集的EXCEL,關閉EXCEL時如何不出現[是否存檔]的對話框

尚未結案
vinceliao
一般會員


發表:2
回覆:1
積分:0
註冊:2005-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-21 16:55:00 IP:220.128.xxx.xxx 未訂閱
大家好 小弟有個難題:我再BCB用OLE呼叫某一個含有巨集的EXCEL並讀取資料,讀完資料後用Wb.PR("Close");Ex.FN("Quit");關閉EXCEL,但是總是會出現[是否存檔]的對話框,請問有沒有辦法不讓它出現呢? 如果直接EXCEL上用VBA CODING的話似乎只要加上 ActiveWorkbook.Close SaveChanges:=True 就可以了,但是怎麼在BCB上面也達到相同的效果呢? HELLO
------
HELLO
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-23 08:32:28 IP:210.65.xxx.xxx 未訂閱
Hi vinceliao,    加上以下程式碼試試:

  ExcelApp.DisplayAlerts := False;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
vinceliao
一般會員


發表:2
回覆:1
積分:0
註冊:2005-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-23 15:08:59 IP:220.128.xxx.xxx 未訂閱
謝謝大大的建議,不過我是用 C Builder 並不是 DELPHI,所以需要用OLE來存取EXCEL。 不過剛剛我已經破解了,提出來供大家參考: 開啟內含巨集的EXCEL,方式跟一般並無不同,但關閉時要加上false/true參數,才不會出現[是否存檔]的對話框,也就是: Wb.PR("Close"); Ex.FN("Quit"); 改成 Wb.PR("Close",false); Ex.FN("Quit"); 後面這加上去的參數其實是VBA的 SaveChanges參數,TRUE代表[存檔],FALSE代表[不存檔],若省略此參數,就會跳出對話框來問你要不要存檔。 謝謝大家 HELLO
------
HELLO
775153
一般會員


發表:1
回覆:3
積分:0
註冊:2006-07-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-02 23:06:57 IP:221.120.xxx.xxx 訂閱
Please use it.

[code cpp]
AnsiString szXlsFile=ExtractFilePath(Application->ExeName) "test.xls";
if(FileExists(szXlsFile)) DeleteFile(szXlsFile);
ExcelBook.OleFunction("SaveAs", StringToOleStr(szXlsFile));

[/code]
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-04 10:41:42 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-11-25 20:35:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!