0

我在 VBScript 中使用了一些代码来打开一个 .xlsm 文件并保存该文件。现在我想做与 .xltm 文件相同的事情。我试图用脚本打开 xltm 文件,它工作正常。保存该文件时,它引用默认位置和默认扩展名。我需要将新打开的文件保存在指定位置,扩展名为“.xlsm”。我不知道该怎么做。请帮我解决这个问题。

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”,我新创建的文件希望保存在位置“C:\test\”,扩展名为“xlsm”。

4

1 回答 1

1

Save方法按原样保存文件。要将其保存为不同的格式,您需要使用SaveAs带有正确文件格式参数的方法(在本例中为启用宏的 Open 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
于 2016-01-12T16:11:16.563 回答