如何使用 .vbs 文件保存具有在电子表格中指定的名称的文件
Posted
技术标签:
【中文标题】如何使用 .vbs 文件保存具有在电子表格中指定的名称的文件【英文标题】:How to save a file with a name which is specified in a spreadsheet, using a .vbs file 【发布时间】:2013-09-21 16:16:18 【问题描述】:我正在做一些 .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 来选择“另存为”,但在命名新文件时它会崩溃。
【问题讨论】:
【参考方案1】:如果您不想实际显示“另存为”对话框而只想将活动文件另存为特定文件名,请查看 Workbook.SaveCopyAs() 函数。这可能对你有用。
【讨论】:
【参考方案2】:感谢您的回复。我会研究一下。
我尝试过的另一件事是简单地复制并重命名文件:
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”会在前面指定。
【讨论】:
以上是关于如何使用 .vbs 文件保存具有在电子表格中指定的名称的文件的主要内容,如果未能解决你的问题,请参考以下文章
如何用bat抓取out文件中指定的数值并保存到新的txt文件中?