2012-09-12 5 views
4

코드를 모듈에 넣은 후 Excel에 =Test2(5)을 입력하십시오. 이 오류로 인해 Byref argument type mismatch 오류가 발생하는 이유는 무엇입니까? 내 배열을 만들기 위해 한 줄을 Test2의 시작의 경우Byref 형식의 형식이 일치하지 않습니다.

:

Dim X1(5), X2(5) As Double, 그것은 작동합니다. 그러나 b을 함수의 인수 목록에서 사용할 때 ReDim (b은 변수가 아닌 상수이기 때문에) 오류가 발생합니다.

Function Test1(a As Double) 

Test1 = a * 2 

End Function 

Function Test2(b As Integer) 
Dim X1(), X2() As Double 
ReDim X1(b), X2(b) As Double 
Dim i As Integer 

For i = 0 To b 
    X1(i) = i 
    X2(i) = Test1(X1(i)) 
Next i 

Test2 = X2(1) 
End Function 

답변

12

이 :로 변환 double로

Dim X1(), X2() As Double 

을 선언 X2(), X1()b (정수)의 종류를 저장할 대신 b 더블 (그래서 예방 As Double 전달).

둘 다 두 번 만들려면 유형 선언을 반복해야합니다.

Dim X1() As Double, X2() As Double 
ReDim X1(b), X2(b) 
올바른 double 형을 의미합니다

이 전달됩니다 Test1

관련 문제