2013-08-14 2 views
-1

서브 루틴을 작성했으며 해당 서브 루틴에서 오류없이 다음 코드를 사용했습니다.오류 13을주는 UDF에 날짜 배열 전달

만 관련 코드 :

Dim CandleEndTimes() as Date 

NoOfCndlInDay = 5 

ReDim Preserve CandleEndTimes(NoOfCndlInDay) 

CandleEndTimes = Array(#10:30:00 AM#, #12:00:00 PM#, #1:30:00 PM#, #3:00:00 PM#, #3:30:00 PM#) 

다음이 서브 루틴 하나 이상의 경우를 처리하기 위해, 나는 배열 CandleEndTimes에 값을 할당 문을 제거하고 아래로 매개 변수로 정의

Sub CustomCandles(UseOnBookName As String, UseOnSheetName As String, NoOfCndlInDay As Integer, CandleEndTimes() As Date) 

위의 서브를 호출하는 데 사용 된 서브 루틴 코드 :

Sub callingcust() 

Dim Min90CandleEndTimes() As Date 

ReDim Preserve Min90CandleEndTimes(5) 

Min90CandleEndTimes = Array(#10:30:00 AM#, #12:00:00 PM#, #1:30:00 PM#, #3:00:00 PM#, #3:30:00 PM#) 


End Sub 

값을 할당하는 데 사용되는 문에서 코드를 디버깅하는 동안 오류가 발생했습니다. 13

위의 코드를 잘못 본 사람이 있습니까? 정보가 충분하지 않다고 생각하는 경우 공유해야 할 다른 정보를 알려주십시오.

친절히 도움!

답변

0

는 배열 기능을 사용하면 형식 불일치 오류가 발생하는 이유입니다 변형 형식을 반환 - 대상 배열이 소스와 동일한 유형의 동적이며 경우에만 하나의 작업에서 다른 하나 개의 배열을 할당 할 수 . 당신이 옵션 자료 1 개 세트를 가지고하지 않는 한 5 개 이산 할당 방식에 의해

Dim Min90CandleEndTimes() As Date 

ReDim Preserve Min90CandleEndTimes(5) 

Min90CandleEndTimes(1) = #10:30:00 AM# 
Min90CandleEndTimes(2) = #12:00:00 PM# 
Min90CandleEndTimes(3) = #1:30:00 PM# 
Min90CandleEndTimes(4) = #3:00:00 PM# 
Min90CandleEndTimes(5) = #3:30:00 PM# 

을해야합니다, 당신의 배열은 6 개 요소 ;-)

+0

당신에게 너무 많은 Joise 감사가 있습니다! 나는 내가 백만 년 늦었 음을 안다. – BrajkishorB