MERGE 새 버전

지난 번 MERGE함수를 소개한 포스팅에서 약속한 바와 같이 개량된 버전을 만들어 보았다. 이번 버전에서는 셀 영역의 갯수를 2개 이상 사용할 수 있다는 점이다. VBA에서 미리 갯수가 정해져 있지 않는 매개변수를 받으려면 ParamArray를 사용한다. 이번 버전에서는 코드를 다이어트하기 위해 불필요한 변수와 함수를 확 줄였다.
Function MERGE(ParamArray ParamRngs())
Dim i As Long, col As Long, row As Long, r As Long, c As Long

For i = 0 To UBound(ParamRngs)
col = WorksheetFunction.Max(col, ParamRngs(i).Columns.Count)
row = row + ParamRngs(i).Rows.Count
Next

ReDim ru(row, col)

row = 0
For i = 0 To UBound(ParamRngs)
For r = 1 To ParamRngs(i).Rows.Count
col = 0
For c = 1 To ParamRngs(i).Columns.Count
ru(row, col) = ParamRngs(i)(r, c)
col = col + 1
Next
row = row + 1
Next
Next

MERGE = ru
End Function

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 타임버드 | 2009/06/26 14:15 | EXCEL/VBA/VBS | 트랙백 | 덧글(2)

트랙백 주소 : http://timebird.egloos.com/tb/4174757
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by ordinary at 2009/06/30 00:09
오오 다이어트 했군요. 유용하게 쓰고저 업어갑니다 :)
월별 sheet의 자료를 월도 key를 줘서 한 sheet에 pivot을 만들수 있겠어요 .
가끔씩 그런일을 할 일이 있었는데 시트별로 피벗만들고, 복사해서 붙여넣고 했지요ㅜ.ㅜ
Commented by 타임버드 at 2009/06/30 08:24
저도 제가 만들어 사용하는 엑셀애드인에 추가해두었죠. 유용하게 사용하시면 만든 저도 기쁘죠

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶