2016-09-25 68 views
0

我有一個咕嘟咕嘟任務手錶Excel文件並運行的VBScript:轉換Excel文件CSV - 不能剿Excel的提示窗口

咕嘟咕嘟代碼:

.pipe(shell([ 
    'XlsToCsv.vbs test test.xlsx test.csv' 
])) 

VBScript代碼:

If WScript.Arguments.Count < 3 Then 
    WScript.Echo "Please specify the sheet, the source, the destination files. Usage: ExcelToCsv <sheetName> <xls/xlsx source file> <csv destination file>" 
    Wscript.Quit 
End If 

csv_format = 6 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

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

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

Dim oBook 
Set oBook = oExcel.Workbooks.Open(src_file) 

oBook.Sheets(WScript.Arguments.Item(0)).Select 
oBook.SaveAs dest_file, csv_format 

oBook.Close False 
oExcel.Quit 

除了當我以CSV格式重新保存文件時的提示跳轉,它工作正常。 就像「有這個名字的文件已經存在,你想保存它嗎?」

節省,因爲咕嘟咕嘟觀察者將觸發執行代碼之前,我不能刪除一個文件。 oBook.Close SaveChanges = TrueoExcel.DisplayAlerts = False沒有工作。

我需要在每次保存時靜靜地運行此腳本。

我應該在腳本中添加什麼命令?

P.S.我不介意使用任何其他腳本,除了PowerShell的 - Set-ExecutionPolicy remotesigned導致錯誤

的Set-ExecutionPolicy:訪問被拒絕的註冊表項HKEY_LOCAL_MACHINE \ Microsoft.PowerShell」

+0

回覆:PowerShell的 - 你需要從提升的提示 –

回答

4

無論是節能

If objFSO.FileExists(dest_file) Then objFSO.DeleteFile dest_file 
oBook.SaveAs dest_file, csv_format 

或設置DisplayAlerts = False壓制提示(這也強制替換現有文件)之前刪除現有文件:

oExcel.DisplayAlerts = False 
oBook.SaveAs dest_file, csv_format 
+0

1.運行'設置ExecutionPolicy'因爲咕嘟咕嘟守望引發不必要的代碼執行 2.我已經添加了DisplayAlerts我不能刪除文件=錯誤的地方。 謝謝! – Doc999tor