【问题标题】:open and save a xltm file打开并保存一个 xltm 文件
【发布时间】:2016-04-17 03:21:26
【问题描述】:

我在 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”。

【问题讨论】:

    标签: vbscript xlsm excel.application


    【解决方案1】:

    Save 方法按原样保存文件。要将其保存为不同的格式,您需要使用带有正确 file format 参数的 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
    

    【讨论】:

      最近更新 更多