VBScript是否允许在函数调用中使用命名参数?

VBScript是否允许在函数调用中使用命名参数?,vbscript,named-parameters,Vbscript,Named Parameters,我试图在VBScript中运行以下代码,但它没有编译最后一条语句。是因为VBScript不允许命名参数吗 Filename_Argument = WScript.Arguments(0) Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Add() Workbooks.OpenText Filename:=Filename_Ar

我试图在
VBScript
中运行以下代码,但它没有编译最后一条语句。是因为
VBScript
不允许命名参数吗

Filename_Argument = WScript.Arguments(0)
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Workbooks.OpenText Filename:=Filename_Argument, Origin _
        :=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
        , Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True

VBScript不支持过程和函数的命名参数。您需要将参数列表更改为位置:

Workbooks.OpenText Filename_Argument, xlMSDOS, ...
VBScript也无法识别Excel常量(如
xlMSDOS
),因此您需要查找这些常量并将其替换为数值:

Workbooks.OpenText Filename_Argument, 3, ...
并且必须使用显式对象引用:

objExcel.Workbooks.OpenText Filename_Argument, 3, ...
Excel宏记录器将命名参数按位置顺序排列,因此您只需删除参数名称即可。您不想指定的可选参数可以省略,例如:

x = Function(Var1, , Var3)
'                 ^
'                 `- omitted optional 2nd parameter

对于反对者来说,如果你认为这是一个糟糕的答案,那么为什么不自己添加一个答案呢?。。。或者至少解释一下你对一个基本正确答案的错误考虑。我更喜欢保留命名常量,并使用<代码> const 声明它们,所以将是<代码> const xLMSDOS=3 < /代码>,而不是使用文字数值。