2012-05-02 4 views
1

У меня есть подпрограмма, которая выглядит так. Он имеет два параметра.Невозможно передать несколько параметров

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

Когда я пытаюсь вызвать это:

Advance listR:=theList, theCount 

Это дает мне ошибку компиляции:

Expected: named parameter

Почему это? Он отлично работает как ...

Sub Advance(rCount) 
    ...code 
End Sub 

И вызывается через:

Advance theCount 

Или работает только с параметром решетки.

ответ

3

Я считаю, что вы можете назвать ваш суб любым из следующих способов, но вы не можете назвать первый параметр, а не имя второй:

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) 
2

От MSDN:

When you supply arguments by a mixture of position and name, the positional arguments must all come first. Once you supply an argument by name, the remaining arguments must all be by name.

+0

+1 Я искал его, но не смог его найти. – assylias

Смежные вопросы