2012-10-26 4 views
1

여기보고하는 ByRef 오류를 검토 한 결과,하지만 여전히 내 방식의 오류를 찾을 수 없습니다. OrderedCaseList()는 변형 형태의 함수 I이있다 하는 ByRef 인수 형식 불일치 오류가()

. 그것은 올바르게 호출되고 예상대로 배열을 반환합니다. 그러나

, 나는 Join(arr... 명령에 내가 얻을 "하는 ByRef 인수 형식이 일치하지"를 컴파일하려고합니다.

OrderedCaseList, Type: Variant/Variant 
Expression:OrderedCaseList(0), Value:"Case 1", Type:Variant/String 
etc. 

Var, [email protected] Variant/Variant 
Expression: Var(0), Value:"Case 1", Type:Variant/String 
etc. 

arr, Type:String(0 to 3) 
Expression:arr(0), Value:"Case 1", Type:String 

어떤 도움에 감사드립니다 :

Private Sub worksheet_Activate() 
Dim s As String 
Dim arr() As String 
Dim var As Variant 
Dim i As Long, j As Long 

var = OrderedCaseList(True) 
ReDim arr(0 To UBound(var)) 

j = UBound(var) 

For i = 0 To j 
    arr(i) = var(i) 
Next 

s = Join(arr, ",") 
Range("c16").Validation.Add Type:=xlValidateCustom, Formula1:=s 

End Sub 

코드의 마지막 두 줄을 주석 변수 시계 출력이 왜 ... 나는 아무 생각이 없습니다.

+0

를 컴파일하면 내가 문제를 복제 할 수 없습니다 참조 . 'arr'이나'var'로 전혀 신경 쓸 필요가 없을 수도 있습니다. 's = Join (OrderedCaseList (true), ",")'를 수행하고 루프를 건너 뛸 수 있습니다. 도움이되지 않는다고 가정하면 OrderedCaseList에 대한 코드 공유는 마음에 드십니까? –

답변

0

귀하의 코드가 잘 보이는 내가 아무리 기능 OrderedCaseList을 설정하는 방법을 깰 수 없었다 (나는 할 수있는하지 어쨌든 문제라고 생각합니다).

당신이뿐만 아니라 기능을 가입 포함하는 제 3 자 DLL을 참조 가능성이 있습니까?

당신이이 줄을 변경하여 VBA 함수를 호출되어 있는지 확인할 수 : 이것에

s = Join(arr, ",") 

:

s = VBA.Strings.Join(arr, ",") 

하고