본문 바로가기
  • Welcome!
VBA Code

재귀 함수

by ToolBOX01 2022. 9. 15.
반응형

"B2" Rang에 중복 값을 제거 하는 프로그램을 만들려고 합니다.

 

[ 중복 데이터 ]

 

첫번째 값과 두번째 값이 같으면 두번째 값을 삭제 하는 코드를 생성 합니다

 

 If rng.Cells(4,"B").Value = rng.Cells(3,"B").Value Then
            rng.Cells(4, "B")Delete
 End If

 

Cells(3,"B") 값이 기준이며, Cells(4,"B") Cells(5,"B") Cells(6,"B") 순서 비교 합니다.  Cells(3,"B") 값이  기준으로 비교 하였으면, Cells(4,"B") 값이 기준이면, 다시 모든 데이터를 비교 합니다. FOR 문을 2개 사용 하여 비교 할수 있습니다.

 

Dim rng As Range
Dim i As Integer
Dim j As Integer
 
Set rng = ActiveSheet.Range("B2").CurrentRegion
 
For i = 2 To rng.Count
    For j = i + 1 To rng.Count
        If rng.Cells(j).Value = rng.Cells(i).Value Then
            rng.Cells(j).Delete
          End If
    Next j
Next i

 

[ 증복 데이터 삭제 안됨]

 

For 문의 조건 때문에 중복데이터를 삭제 못하는 경우가 있습니다. 이때 삭제 할수 있는 방법은 위 코드를 함수로 만들고 함수안에 동일한 함수를 재 호출 하여 중복 데이터를 삭제 합니다.

 

▶ 자세한것은 이곳으로

 

엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기

VBA 에서도 재귀 호출을 사용해야 원활하게 문제를 해결할 수 있는 경우가 종종 있습니다. 그 예가 오늘 샘플로 소개할 중복 데이터 삭제 입니다. C, C++, Java 등을 다뤄 보신 분들은 한번쯤 경험이

mainia.tistory.com

 

'VBA Code' 카테고리의 다른 글

FOR NETX 문 응용  (0) 2022.09.16
사용자 정의 Sub 프로시저  (0) 2022.09.15
배열(array) #2  (0) 2022.09.14
배열(array) #1  (0) 2022.09.07
VAB 딜레이  (0) 2021.03.30