无法传递多个参数

时间:2012-05-02 17:06:32

标签: vba subroutine

我有一个看起来像这样的子程序。它有两个参数。

Sub Advance(ByRef listR() As String, rCount)
    ...code
End Sub

当我试着这样说时:

Advance listR:=theList, theCount

它给我一个编译错误:

  

预期:命名参数

这是为什么?它工作得很好......

Sub Advance(rCount)
    ...code
End Sub

并通过以下方式致电:

Advance theCount

或者也只使用数组参数。

2 个答案:

答案 0 :(得分:3)

我相信您可以通过以下任何一种方式调用您的sub,但是您不能命名第一个参数而不能命名第二个参数:

Advance listR:=theList, rCount:=theCount
Advance rCount:=theCount, listR:=theList
Advance theList, rCount:=theCount
Advance theList, theCount

Call Advance(listR:=theList, rCount:=theCount)
Call Advance(rCount:=theCount, listR:=theList)
Call Advance(theList, rCount:=theCount)
Call Advance(theList, theCount)

答案 1 :(得分:2)

来自MSDN

  

当您通过位置和名称的混合提供参数时,位置参数必须   一切都来了。一旦按名称提供参数,剩余的参数必须都是   名。