엑셀 VBA에서 중복 제거
우리는 중복을 제거 엑셀 VBA에서 프로그램을보고 아래.
상황 :
열 A에서 우리는 10 개 숫자가 있습니다. 우리는이 숫자의 중복을 제거하고 열 B에 고유 번호를 배치 할
-
먼저, 우리는 네 개의 변수를 선언합니다. 불리언 타입의 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
-
우리는 두 개의 변수를 초기화합니다. 우리는 우리가 다음 번호의 요구가 아니라 추가 할 가정 True로 TOADD 설정 값 1. uniqueNumbers를 초기화 할 수 있도록 우리는 (이 반드시 물론 사실이 아니다), 열 B에 하나 개의 번호를 추가했습니다.
uniqueNumbers = 1 toAdd = True
우리는 두 번째 숫자는 ‘독특한’인지 여부를 확인해야합니다. 이것은 매우 쉬운 방법으로 수행 할 수 있습니다. 숫자 칼럼 B에없는 경우에만 상기 제 번호 칼럼 B. 추가해야
-
우리는 또한 세 번째 숫자 네 번째 숫자에 대해이 작업을 확인해야합니다, 등등. 우리는 이것에 대한 내용은 다음 루프를 시작합니다.
For i = 2 To 10
-
이제 프로그램의 가장 중요한 부분을 온다. 두 번째 숫자는 (지금까지 우리는 단지 하나 개의 고유 번호가) 열 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
-
당신의 명령 단추에 매크로를 테스트합니다.
결과 :