=UCOMB(범위지정, 사이사이 넣을 문자나 값 아무거나)
ex) =ucomb(A1:C3,",")
하면 A1부터 C3안의 모든 문자를 돌아가며 중복데이터를 걸러낸 후, 오름차순 정렬하고
그 사이사이에 , 를 넣은 결과값이 나옵니다. 맨 마지막에는 , 를 빼도록 코딩했습니다.
--------------------------------------------------------------------------------
Function UComb(rngAR As Range, str As Variant)
Dim rngCell As Range
Dim i As Double
Dim strTemp() As Variant
Dim strCell As String
Dim NC As New Collection
Dim var As Variant
i = rngAR.Count
ReDim strTemp(i) As Variant
i = 0
On Error Resume Next
'----------------------------------------이하 컬렉션오브젝트를 이용한 중복자료 거르기 구문
For Each rngCell In rngAR
NC.Add rngCell.Value, CStr(rngCell.Value)
Next rngCell
'----------------------------------------이하 걸러진 중복자료를 배열변수에 넣기
For Each var In NC
i = i + 1
strTemp(i) = var
Next var
i = 0
'----------------------------------------이하 순환문을 사용한 오름차순 정렬법
For Each var In strTemp
i = i + 1
strCell = strCell & WorksheetFunction.Small(strTemp, i) & str
Next var
'----------------------------------------이하 반환할 값인데, 그냥 STRCELL로 지정하시면 맨 끝에도 사이사이에 넣는 문자가 붙어서 나옵니다.
UComb = Left(strCell, Len(strCell) - Len(str))
End Function
'엑셀VBA' 카테고리의 다른 글
매크로 셀이동 (0) | 2011.06.14 |
---|---|
입력 받은 셀 주소로 이동하기 (0) | 2011.06.14 |
한 셀내의 문자 정렬 및 중복 제거하기 (0) | 2011.02.13 |
특정 일자와 가장 가까운 날짜값 찾기 (1) | 2011.02.12 |
시트생성, 시트삭제, 강제저장 (0) | 2010.07.20 |