우리는 중복을 제거 엑셀 VBA에서 프로그램을보고 아래.

상황 :

열 A에서 우리는 10 개 숫자가 있습니다. 우리는이 숫자의 중복을 제거하고 열 B에 고유 번호를 배치 할

Remove Duplicates in Excel VBA

  1. 먼저, 우리는 네 개의 변수를 선언합니다. 불리언 타입의 TOADD 입력 정수 타입 정수 I 및 유형의 정수 J uniqueNumbers.

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

첫 번째 숫자는 ‘독특한’항상이기 때문에 2. 다음으로, 우리는 열 B에 열 A의 첫 번째 숫자 물품.

Cells(1, 2).Value = Cells(1, 1).Value
  1. 우리는 두 개의 변수를 초기화합니다. 우리는 우리가 다음 번호의 요구가 아니라 추가 할 가정 True로 TOADD 설정 값 1. uniqueNumbers를 초기화 할 수 있도록 우리는 (이 반드시 물론 사실이 아니다), 열 B에 하나 개의 번호를 추가했습니다.

uniqueNumbers = 1

toAdd = True

우리는 두 번째 숫자는 ‘독특한’인지 여부를 확인해야합니다. 이것은 매우 쉬운 방법으로 수행 할 수 있습니다. 숫자 칼럼 B에없는 경우에만 상기 제 번호 칼럼 B. 추가해야

  1. 우리는 또한 세 번째 숫자 네 번째 숫자에 대해이 작업을 확인해야합니다, 등등. 우리는 이것에 대한 내용은 다음 루프를 시작합니다.

For i = 2 To 10
  1. 이제 프로그램의 가장 중요한 부분을 온다. 두 번째 숫자는 (지금까지 우리는 단지 하나 개의 고유 번호가) 열 B의 번호 중 하나와 동일한 경우에, 우리는 때문에 우리가이 번호를 추가하지 않으려는이 경우 False로 TOADD을 설정! (그것은 ‘독특한’아니다). 순간 uniqueNumbers에서 여전히 1과 동일하지만, uniqueNumbers은 전체 목록이 될 수 있습니다. 이 모든 목록을 확인하려면, 우리는 다음 루프에 대한 또 다른 필요합니다. 다시 우리가 추가 할 수는이 목록의 번호 중 하나와 동일한 경우, TOADD False로 설정되고 수는 추가되지 않습니다. 다음 코드 줄을 추가합니다

For j = 1 To uniqueNumbers

If Cells(i, 1).Value = Cells(j, 2).Value Then

toAdd = False

End If

Next j

TOADD 여전히 참과 거짓으로 설정되지 않은 경우 6. 만, 엑셀 VBA는 우리가 더 많은 지금은 하나 개의 고유 번호를 가지고 있기 때문에 우리가 1 uniqueNumbers를 증가, 동시에 열 B.에 번호를 추가 할 필요가있다. 다음 코드 라인은 일을 얻을 :

If toAdd = True Then

Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value

uniqueNumbers = uniqueNumbers + 1

End If

(7) 마지막으로, 우리는 다음의 번호 (제 3 수)가 추가되어야 가정하면 True로 설정 TOADD. 다시 이것은 반드시 사실이 아니다.

toAdd = True

루프를 닫을 것을 잊지 마십시오 8..

Next i
  1. 당신의 명령 단추에 매크로를 테스트합니다.

결과 :

Remove Duplicates Result