우리는 무작위로 선택된 범위와 하이라이트의 고유 한 세포를 비교 엑셀 VBA에서 프로그램을보고 아래. 당신은`링크에 익숙하지 않은 경우 : / VBA – 예 – 지역 – 모음 [지역]`아직, 우리는 매우 먼저이 예제를 읽을 것을 권장합니다.

상황 :

Compare Ranges in Excel VBA

주 : 모든 다른 값은, 적어도 하나 개 이상의 영역에서 발생할 때문에이 예에서 유일한 고유 값은 3이다. ( “B7, D3 : E6, D8 : B2 E9”) 범위를 선택하려면 Ctrl 키를 누른 상태 및 각 영역을 선택합니다.

워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가

  1. 먼저, 우리는 네 개의 범위 개체와 형 정수의 두 변수를 선언합니다.

Dim rangeToUse As Range, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer
  1. 우리는 선택 범위 Range 개체의 rangeToUse를 초기화합니다.

Set rangeToUse = Selection

‘없음 채우기’에 모든 셀의 배경색을 변경하는 행을 추가합니다. 또한 모든 셀의 테두리를 제거하는 행을 추가합니다.

Cells.Interior.ColorIndex = 0

Cells.Borders.LineStyle = xlNone

그 또는 그녀가 하나 개의 영역을 선택하면 사용자에게 알리십시오.

If Selection.Areas.Count <= 1 Then

MsgBox "Please select more than one area."

Else

End If

(5, 6, 7에서) 다음 코드 라인은 그렇지 및 최종면 사이에 추가해야합니다.

  1. 색상 선택한 영역의 세포.

rangeToUse.Interior.ColorIndex = 38

각 영역 테두리 (Border) 6.

For Each singleArea In rangeToUse.Areas

singleArea.BorderAround ColorIndex:=1, Weight:=xlThin

Next singleArea

이 프로그램의 7. 나머지는 다음과 같습니다.

For i = 1 To rangeToUse.Areas.Count

For j = i + 1 To rangeToUse.Areas.Count

For Each cell1 In rangeToUse.Areas(i)

For Each cell2 In rangeToUse.Areas(j)

If cell1.Value = cell2.Value Then

cell1.Interior.ColorIndex = 0

cell2.Interior.ColorIndex = 0

End If

Next cell2

Next cell1

Next j

Next i

설명 :이 압도적 조금 보일 수도 있지만, 그렇게 어렵지 않다. 최초 두 개의 코드 라인이 난 3 = 1의 경우를 줄일 J 3.로 I + 1 = 그래서 1 = 들어 rangeToUse.Areas.Count, 3과 동일, j는 = 2, 엑셀 VBA는 제 1 영역의 모든 값을 비교 상기 제 2 영역의 모든 값. i가 1, J = = 3은 Excel VBA은 제 3 영역의 모든 값과 제 1 영역의 모든 값을 비교한다. i가 2, J = = 3은 Excel VBA은 제 3 영역의 모든 값과 상기 제 2 영역의 모든 값을 비교한다. 값이 동일한 경우가 고유하지 않기 때문에, 그것은 ‘아니오 채우기’에 모두 셀의 배경색을 설정합니다.

당신이 시트에 명령 단추를 클릭하면 검색 결과 :

Compare Ranges Result