2016-01-12 155 views
0

我在VBScript中使用了一些代碼來打開.xlsm文件並保存該文件。現在我想和.xltm文件做同樣的事情。我試圖用腳本打開xltm文件,它工作正常。保存該文件時,它指的是默認位置和默認擴展名。我需要將新擴展名爲「.xlsm」的文件保存在指定位置。我不知道如何繼續。請幫我解決這個問題。打開並保存xltm文件

Set objExcel = CreateObject("Excel.Application") 
Set WBTestFile = objExcel.Workbooks.Open(WScript.Arguments(0))'SourceFile 
WBTestFile.save 
WBTestFile.close 
objExcel.Workbooks.Open(WScript.Arguments(0)) 

在這裏,我傳遞文件名(帶路徑)作爲參數。我需要在最後一條語句中打開新保存的「.xlsm」文件。參數:「c:\ test \ book1.xltm」,我新創建的文件希望保存在擴展名爲「xlsm」的位置「C:\ test \」中。

回答

1

Save方法按原樣保存文件。將它保存在不同的格式,你需要使用SaveAs方法與正確的file format參數(在這種情況下啓用了宏的打開XML模板):

filename = WScript.Arguments(0) 
templatename = Replace(filename, ".xlsm", ".xltm") 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Open(filename) 
wb.SaveAs templatename, 53 'save as template 
wb.Close 
xl.Quit 

要從你需要現有的模板創建一個新的工作簿以模板路徑使用Add方法作爲參數,然後將該文件保存爲啓用宏的Open XML工作簿:

template = WScript.Arguments(0) 
filename = Replace(template, ".xltm", ".xlsm") 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Add(template) 
wb.SaveAs filename, 52 'save as workbook 
wb.Close 
xl.Quit 
template = WScript.Arguments(0) 
filename = Replace(template, ".xltm", ".xlsm") 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Add(template) 
wb.SaveAs filename, 52 'save as workbook 
wb.Close 
xl.Quit