2017-02-07 3 views
0

동일한 차원을 가진 두 개의 동적 배열을 추가하고 그 값의 오름차순으로 정렬하려면 어떻게합니까? 예를 들어VBA 배열을 세 번째 다른 배열에 추가

,

Dim a as Variant 
a = sheets(1).range("B" & firstRow & ":B" & lastRow) 
Dim b as Variant 
b = sheets(1).range("C" & firstRow & ":C" & lastRow) 

FIRSTROW 및 lastRow

적절히 정의된다.

제 질문은 배열 a를 어떻게 배열에 추가 할 수 있습니까? 우리는 a = (8,3,5)와 b = (1,7,2)로 가정합니다. 배열 c는 (8,3,5,1,7,2)이어야합니다. 나는 성공하지 못하고 다음을 시도했다. 아무도 왜 작동하지 않는지 설명 할 수 있습니까?

Dim c as variant 
c = Join(b, Join(a, ",")) 

배열 C에 도입 된 값을 정렬하려면 함수를 만들어야하거나 한 번만 할 수 있습니까?

Dim aArray() As variant 
aArray = aRange 
Dim bArray() As Variant 
bArray = bRange 
Dim cArray() As Variant 
cArray = aArray 
Dim i As Integer 

For i = 1 To UBound(coutArray) 
ReDim Preserve cArray(UBound(aArray)+1) As Variant 
cArray(i + UBound(aArray),1) = bArray(i,1) 
Next i 

내가 aArray이의 말에 cArray()를 추가하려고 :

나는 다음과 같은 코드로 변경하면

마지막 버전 감사 두 개의 배열이 cArray()에 도입 될 것입니다. 왜 이것이 효과가 없습니까? 나는 이해하고 싶다.

또한 함수 (How do I Merge two Arrays in VBA?)를 만들려고했는데 어떻게하면 프로 시저를 호출 할 수 있습니까? 그것은 효과가 없었습니다.

감사합니다.

답변

0

배열 또는 엑셀 범위를 추가 하시겠습니까?

a 및 b는 예제 Excel Range 개체에만 있습니다. 배열이 아닙니다.

어쨌든 : Heres는 결합 배열에 대한 좋은 기사 : 여기 How do I Merge two Arrays in VBA?

및 정렬을 위해 기사 : VBA array sort function?

+0

사실 A와 B는 엑셀 범위의 값을 가지고있다. 배열의 값을 찾기 전에 범위를 배열로 변환해야한다고 생각했습니다. – vbalearner

+0

나는 정말로 네가하고 싶은 것을 얻지 못한다. 조인은 sinhgle 치수 배열의 모든 요소에 문자열에 주석을 추가합니다. 예 : a = (8,6,9) 조인 (a, "/") "8/6/9"문자열을 반환 – Shmukko

+0

두 개의 다른 열에서 두 개의 배열을 만들려고합니다. 그런 다음이 두 배열을 세 번째 배열로 집계해야합니다. 예를 들어, a = Array (8,3,5) 및 b = Array (1,72)를 고려하면 값이 오름차순으로 정렬되는 세 번째 배열 c = Array (1,2,3,5,7,8) . – vbalearner

관련 문제