2012-05-02 5 views
1

다음과 같은 서브 루틴이 있습니다. 두 개의 매개 변수가 있습니다. 왜이여러 매개 변수를 전달할 수 없습니다.

Expected: named parameter

입니다 :

Advance listR:=theList, theCount 

그것은 나에게 컴파일 오류를 제공합니다 :

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

나는이 전화를 시도

? 그것은 ...처럼 잘 작동을 통해

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

관련 문제