2014-10-30 2 views
1

배열을 Array = "Range"로 정의 했었습니다. 이 문제로 인해 배열을 2 열의 조합으로 재정의했습니다. 아쉽게도 Ubound (Array, dimension) 구문에서 오류가 발생합니다. 누군가가 구문이 내 새로운 정의와 어떻게 작동하는지 설명 할 수 있다면, 그것은 크게 감사 할 것입니다. Ubound (Array)의 구문은 배열이 범위 집합 인 경우

는 배열을 정의하는 코드입니다 :

Sub define_array_5(Array_1) 

    Dim wsh As Worksheet 

    Dim range1 As Range 
    Dim range2 As Range 
    Dim finalrange As Range 

    Dim a As Integer 
    Dim finalrow As Integer 

    ' define array 

    finalrow = Range("a1").End(xlDown).row 

    Set range1 = Range(Cells(1, 1), Cells(finalrow, 1)) 
    Set range2 = Range(Cells(1, 5), Cells(finalrow, 5)) 
    Set finalrange = Union(range1, range2) 

    ReDim Array_1(1 To finalrange.Areas.Count) 

    For a = 1 To finalrange.Areas.Count 
    Array_1(a) = finalrange.Areas(a) 
    Next 

End Sub 

내가 예를 들어, 배열 _1 무엇 이었는가 것을 알아 냈어요 (3, 2) 기존의 정의에 지금 (2) (3 배열 _1입니다 , 1)하지만 Ubound 구문은 나를 벗어나고 있습니다.

답변

1

당신이 묻는 것은 당신의보기에 의미가 없습니다.

Array_1을 구역의 단일 차원 배열로 명시 적으로 정의합니다. 각각의 구역은 상한선을가집니다.

'this dimensions it as a 1-D array 
ReDim Array_1(1 To finalrange.Areas.Count) 

나는 다음과 같다 당신이 찾고있는 것을 생각 :

For a = 1 To finalrange.Areas.Count 
    Array_1(a) = finalrange.Areas(a) 
    'this is what I think you are trying to do 
    Debug.Print UBound(Array_1(a)) 

Next 

이 당신에게 당신의 1-D 배열의 배열 요소 a의 상한을 제공합니다.

+0

감사합니다. 끝났습니다. – Kaz

+0

@ Zak 여러분, 반갑습니다. – enderland

+1

@Zak 귀하의 문제를 해결하는 답변을 수락하는 것을 잊지 마십시오 :) –

관련 문제