메모

vba array 1차원 두개로 2차원 만들기...펌

맘편한넘 2013. 8. 1. 17:54

re: VBA에서 2차원배열에 값을 넘겨주는 방법에 대한 질문

Jazzpia(xogari)
답변채택률77.8%
2009.01.27 12:37
답변 추천하기

질문자 인사

좋은 답변 감사합니다. 많은 도움이 되었습니다.

안녕하세요~

이런 경우는 다음과 같이 해 보세요~

dim n as long,My_Month,My_Month2

My_Month=array("1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월")

My_Month2= array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

for n=1 to 12

cells(1,n)=My_Month(n-1)

cells(2,n)=My_Month2(n-1)

next n

또 순환문을 쓰지 않고 한번에 처리할 수도 있습니다...

dim My_Month,My_Month2

My_Month=array("1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월")

My_Month2= array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

cells(1,1).resize(1,12)=My_Month

cells(2,1).resize(1,12)=My_Month2

다음은 1차원 배열안에 다시 1차원 배열을 넘겨 받습니다.

Dim arrMon(1 To 2), My_Month(1 To 2), n As Long

arrMon(1) = Array("1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월")

arrMon(2) = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

For n = 1 To 2
My_Month(n) = arrMon(n)
Next n

'배열 확인
For n = 1 To 12
Debug.Print My_Month(1)(n - 1), My_Month(2)(n - 1)
Next n


또 다른 방법으로...

Dim arrMon1, arrMon2, My_Month(1 To 2, 1 To 12), n As Long

arrMon1 = Array("1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월")

arrMon2 = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")


For n = 1 To 12
My_Month(1, n) = arrMon1(n - 1)
My_Month(2, n) = arrMon2(n - 1)
Next n


' 배열 확인
For n = 1 To 12
Debug.Print My_Month(1, n), My_Month(2, n)
Next n

Cells(1, 1).Resize(2, 12) = My_Month ' 셀의 가로 범위에

Cells(4, 1).Resize(12, 2) = Application.Transpose(My_Month) ' 셀의 세로범위에

그럼 잘 되시기를....