我收到错误:
无效的程序调用或参数:' AddRange'
将变量传递给ArrayList.AddRange()时,但是当我传递函数的返回值时,代码工作正常,即
我的清单:
Dim Foo
Set Foo = CreateObject("System.Collections.ArrayList")
添加GetList()
返回的新列表可以正常工作:
Call Foo.AddRange(GetList()) ' works fine
Function GetList()
Set GetList = CreateObject("System.Collections.ArrayList")
End Function
但是传递带有变量(x
)的新列表会引发错误:
Dim x
Set x = CreateObject("System.Collections.ArrayList")
Call Foo.AddRange(x) ' error: invalid procedure call or argument: 'AddRange'
发生了什么事?
答案 0 :(得分:3)
看起来你需要按值传递数组列表。这有效:
Call Foo.AddRange((x))
内部括号集导致参数传递ByVal
而不是ByRef
。