我有一个看起来像这样的子程序。它有两个参数。
Sub Advance(ByRef listR() As String, rCount)
...code
End Sub
当我试着这样说时:
Advance listR:=theList, theCount
它给我一个编译错误:
预期:命名参数
这是为什么?它工作得很好......
Sub Advance(rCount)
...code
End Sub
并通过以下方式致电:
Advance theCount
或者也只使用数组参数。
答案 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:
当您通过位置和名称的混合提供参数时,位置参数必须 一切都来了。一旦按名称提供参数,剩余的参数必须都是 名。