2016-07-25 108 views
0

我有一組在保護視圖中打開的excel文件。我想打開這些excel文件,刪除受保護的視圖,然後將它們保存爲製表符分隔的文本文件。到目前爲止,我已經能夠做所有事情,但是當我運行腳本時,會出現一個提示,詢問用戶是否想保存excel文件。我想擺脫這個提示,使腳本完全自動。下面是當前的代碼:vbs腳本保護視圖

format = -4158 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0)) 
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1)) 

Dim oExcel 
Set oExcel = CreateObject("Excel.Application") 

oExcel.ProtectedViewWindows.Open(src_file) 
oExcel.ActiveProtectedViewWindow.Edit 
oExcel.Quit 

Dim oBook 
Set oBook = oExcel.Workbooks.Open(src_file) 
oBook.Worksheets(5).Activate 

oBook.SaveAs dest_file, format 

oBook.Close False 

oExcel.Quit 

我已經找到解決方案,以消除提示網上,而是因爲我必須編輯受保護的視圖窗口,我不能找到一種方法,使用該解決方案。我怎樣才能使這個VB腳本刪除受保護的視圖,並將Excel文件保存爲製表符分隔的文本文件?它應該不顯示任何窗口或提示,即它應該是自動的。

回答

0

要簡單地讓Excel忽略一般的消息框是這樣的:

oExcel.DisplayAlerts = False 
'your code here to close workbook 
oExcel.DisplayAlerts = True 
+0

哪一部分後吧?你可以用false語句開始你的腳本,並且在最後一個quit語句之前放置true語句,因爲你正在尋找完全自動化。 – Jason

+0

在我初始化oExcel之後,我放置了這個權利。但現在發生了很多奇怪的事情。我在兩臺不同的計算機上試用了這兩款產品,兩款都使用2013 Excel。在一臺計算機上,沒有出現提示,我收到一個錯誤,提示「服務器拋出異常」,隨後出現excel崩潰。在另一臺計算機上,提示仍然出現,沒有任何變化。但有幾次,提示不會出現,但什麼都不會發生!然後我會收到一個錯誤,說「被呼叫者拒絕呼叫」。 – Dillydill123

+0

有沒有辦法在第一次調用oExcel.Quit之前簡單地保存oExcel對象? – Dillydill123