엑셀 VBA에서 범위를 비교
우리는 무작위로 선택된 범위와 하이라이트의 고유 한 세포를 비교 엑셀 VBA에서 프로그램을보고 아래. 당신은`링크에 익숙하지 않은 경우 : / VBA – 예 – 지역 – 모음 [지역]`아직, 우리는 매우 먼저이 예제를 읽을 것을 권장합니다.
상황 :
주 : 모든 다른 값은, 적어도 하나 개 이상의 영역에서 발생할 때문에이 예에서 유일한 고유 값은 3이다. ( “B7, D3 : E6, D8 : B2 E9”) 범위를 선택하려면 Ctrl 키를 누른 상태 및 각 영역을 선택합니다.
워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가
-
먼저, 우리는 네 개의 범위 개체와 형 정수의 두 변수를 선언합니다.
Dim rangeToUse As Range, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer
-
우리는 선택 범위 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에서) 다음 코드 라인은 그렇지 및 최종면 사이에 추가해야합니다.
-
색상 선택한 영역의 세포.
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 영역의 모든 값을 비교한다. 값이 동일한 경우가 고유하지 않기 때문에, 그것은 ‘아니오 채우기’에 모두 셀의 배경색을 설정합니다.
당신이 시트에 명령 단추를 클릭하면 검색 결과 :