-
[& Chronicle] Dictionary 중복값 추려내며 배열에 담기VB(A)/당근쨈 & Chronicle 2016. 1. 6. 22:56
Dictionary를 이용하여 중복값 추려내며 데이터를 배열에 담아내는 짧은 코드
수식은 Chronicle님의 블로그에 - http://blog.naver.com/asaph16/220627965891 (감탄)
Sub Macro()Dim D As ObjectDim vCar, vMsg$()Dim i%, j%, intC%Dim rngMsg As RangevCar = Range("C5", Cells(Rows.Count, "D").End(3)) '이름 및 차량 범위Set D = CreateObject("Scripting.Dictionary") '딕셔너리 선언Set rngMsg = Range("F5") '메시지 출력 셀If LenB(rngMsg) Then rngMsg.CurrentRegion.ClearContents '기존 메시지 삭제For i = 1 To UBound(vCar, 1) '사원명 순환If Not D.Exists(vCar(i, 1)) Then '사원명이 없으면 배열에 이름 및 차량을 넣음ReDim Preserve vMsg(1, j)D.Add vCar(i, 1), jvMsg(0, j) = vCar(i, 1)vMsg(1, j) = vCar(i, 2)j = j + 1Else '사원명이 있으면 이름에 차량을 삽입intC = D.Item(vCar(i, 1))vMsg(1, intC) = vMsg(1, intC) & ", " & vCar(i, 2)End IfNext iWith rngMsg '메시지 출력For i = 0 To UBound(vMsg, 2).Offset(i) = vMsg(0, i) & "님의 차량은 " & vMsg(1, i) & "입니다"Next iEnd WithEnd Subcs 'VB(A) > 당근쨈 & Chronicle' 카테고리의 다른 글
[& Chronicle] 불규칙한 그룹의 문자열 구분 (0) 2017.05.03 [& Chronicle] 두 날짜 사이에서 특정 요일의 개수 구하기 (0) 2017.05.02 [& Chronicle] 숫자와 영문자가 혼용된 상태에서 영문자만 추출하기 (0) 2017.05.02 [& Chronicle] 문자 거꾸로 출력하기 (0) 2017.05.02 [& Chronicle] 중복값 제거 & 중복값의 개수 (0) 2017.05.02 댓글