在VBS中使用多个参数时出现预期语句错误

时间:2018-06-12 15:08:06

标签: vbscript

我正在制作一个简单的vbs,它将打开和关闭一个excel文件并在关闭时保存。这是为了在excel文件被单独的python脚本修改后更新它们内部的值,我需要这样做才能解决我无法控制的许多愚蠢的原因。

我对VBS没有很多经验,但是我对此进行了研究,我没有在代码中看到错误。但是,每当我尝试运行下面的代码时,我都会收到错误。错误是:

 Line: 7
 Char: 39
 Error: Expected statement
 Code: 800A0400
 Source: Microsoft VBScript compilation error

任何帮助将不胜感激,谢谢!

dim fso
set fso = CreateObject("Scripting.FileSystemObject")

if(fso.FileExists("C:\Users\Public\Documents\Templates\testfile.xlsx")) then
    set xlapp = createobject("Excel.Application")
    xlapp.Workbooks.Open "C:\Users\Public\Documents\Templates\testfile.xlsx"
    xlapp.ActiveWorkbook.SaveAs Filename:="C:\Users\Public\Documents\Templates\testfile_test.xlsx", FileFormat:=51, ConflictResolution:=2
    xlapp.ActiveWorkbook.Close SaveChanges:=True
end if

1 个答案:

答案 0 :(得分:0)

如果您使用的是独立VBS,则以下行无法正常工作,因为VBS不是VBA。 VBA在函数调用中支持Named Argument Syntax,而VBS不支持它。

xlapp.ActiveWorkbook.SaveAs Filename:="C:\Users\Public\Documents\Templates\testfile_test.xlsx", FileFormat:=51, ConflictResolution:=2
xlapp.ActiveWorkbook.Close SaveChanges:=True

您必须为函数提供参数。因此Function ArgName:=ArgValue变为Function ArgValue

xlapp.ActiveWorkbook.SaveAs "C:\Users\Public\Documents\Templates\testfile_test.xlsx",51,,,,,,2
xlapp.ActiveWorkbook.Close True