Chronicle님(블로그 바로가기)께 약간 도움을 받은 내용입니다.
하나의 셀에 여러 데이터가 중복으로 있을 때
중복항목은 제거하여 오름차순 또는 내림차순으로 정렬하는 사용자정의 함수입니다.
ArrayList 개체를 활용하여 정렬을 한번에 하는 것이 이번 코드의 골자입니다.
Option Explicit Function UniqueSort(ByVal s As String, Optional sortby As Boolean = False) As String '중복된 데이터를 제거하고 오름차순 또는 내림차순으로 정렬하는 사용자정의 함수입니다. '오름차순 정렬이 기본으로 설정되어 있습니다. '내림차순으로 정렬하고자 하면 =UniqueSort(A1, True) 로 입력을 하면 됩니다. Dim v As Variant Dim C As Object Set C = CreateObject("System.Collections.ArrayList") 'ArrayList 생성 With C '고유항목만 ArrayList에 삽입 For Each v In Split(s, ",") If Not .contains(v) Then .Add v Next v .sort '배열을 오름차순으로 정렬(기본) If sortby = True Then .Reverse 'True가 있을 때 내림차순으로 정렬 UniqueSort = Join(.ToArray, ",") End With End Function | cs |
'VB(A)' 카테고리의 다른 글
[정규식] 일정한 패턴의 숫자만 가져오기 (0) | 2019.03.18 |
---|---|
공급업체별 제품명 출력하기 (2) | 2019.03.17 |
특정 글자색 추려내기 (0) | 2019.03.16 |
같은 글자색의 숫자 더하기 (0) | 2019.03.15 |
시트명을 입력하면 해당 시트로 이동 (0) | 2019.03.12 |