VB(A)

Collection 객체를 활용하여 중복값 찾기

당근쨈 2015. 2. 19. 08:05

중복값을 다 나열하여 RemoveDuplicates로 중복값을 지우는 코드를 썼다가

카페의 Chronicle 님이 Collection 개체로 중복값을 찾는 방식을 알려줘서

그에 맞춰서 나도 다시 짜봤다.


중복값이 생기면 Collection에 중복값을 쌓아가고

셀에 그 배열들을 뿌리는 방식. 이를테면 공식 같은 거다.


Option Explicit
Sub dblName()
 
    Dim rngName As Range
    Dim rngCell As Range
    Dim cltName As New Collection
    Dim varName As Variant
    Dim i As Integer
    
    '기존항목 제거 후 제목 입력
    With Range("C1")
        .CurrentRegion.ClearContents
        .Value = "중복이름"
    End With
    
    '반편성 영역 지정
    Set rngName = Range("A1").CurrentRegion
    
    '중복값을 Collection에 저장
    On Error Resume Next
    
    For Each rngCell In rngName
        If WorksheetFunction.CountIf(rngName, rngCell) > 1 Then
            cltName.Add rngCell, CStr(rngCell)
        End If
    Next rngCell
    
    On Error GoTo 0
    
    'Collection에 저장된 중복값을 배열로 뿌림
    For Each varName In cltName
        Range("C2").Offset(i, 0= varName
        i = i + 1
    Next varName
 
End Sub
cs


중복값 찾기.xlsm


'VB(A)' 카테고리의 다른 글

이름을 자음 모음으로 분리하기  (0) 2015.02.22
시트별로 파일 저장  (0) 2015.02.21
숫자만 인식하기  (0) 2015.02.17
중복값 제외하고 수량 합산하기  (0) 2015.02.16
대량의 텍스트파일을 1열로 불러오기  (0) 2015.02.16