如何使用.vbs文件保存具有电子表格中指定名称的文件

时间:2013-09-21 16:16:19

标签: windows vbscript

我正在做一些.vbs编码,其中我想打开一个现有的模板文件,对其进行一些更改,然后使用在单元格B2中指定的文件名“另存为”。

Set objExcel = CreateObject("Excel.Application")

FileDirectory = "C:\Users\j128\Desktop\"
FileName = "TEMPLATE.xlsx"

Set objWorkbook = objExcel.Workbooks.Open(FileDirectory+FileName)

objExcel.Visible = True
objExcel.Cells(2,2).value = "Variable" 'Changes will occur in this section

ActiveWorkbook.SaveAs Filename = cells(2,2).value 'This is where problems occur

我意识到我已经可以使用宏来命名具有单元格中指定值的Excel文件。但是,我打算使用此.vbs文件使用电子表格中指定的值来命名其他文档类型。

感谢您的帮助!


显然可能无法实现:How can I use the common Save As dialog from VBScript?

我也尝试使用sendkeys选择“另存为”,但在命名新文件时它会崩溃。

2 个答案:

答案 0 :(得分:0)

如果您不想实际显示“另存为”对话框,只想将活动文件另存为特定文件名,请查看Workbook.SaveCopyAs()函数。这可能对你有用。

答案 1 :(得分:0)

感谢您的回复。我会仔细研究一下。

我尝试的另一件事是简单地复制并重命名文件:

Set WSHShell = CreateObject("Wscript.Shell")
CurrentDirectory = WSHShell.CurrentDirectory & "\"

Template = "TEMPLATE.xlsx"
NewFile = "New File.xlsx"

Set objFSO = CreateObject("Scripting.FileSystemObject")
' First parameter: original location&file
' Second parameter: new location&file
objFSO.CopyFile CurrentDirectory&Template, CurrentDirectory&NewFile

我现在需要的是能够动态设置“NewFile”等于另一个电子表格中的单元格。

编辑:显然这样的事情将允许我在其他地方的单元格中指定'NewFile'输入:

value1 = xlSht.Cells(2, 1) 'Example of how to specify a value as equal to the value in cell A2

请注意,之前已经指定过'xlSht'。