2016-08-03 2 views
2

여기 Excel VBA에서 도움이 필요합니다.여러 셀을 vba와 비교하는 Excel

동일한 행의 여러 셀을 비교하는 방법을 알고 싶지만 다른 열을 알고 싶습니다.

특정 셀 E3, G3, I3과 같은 것을 비교해보고 그 중 하나가 중복 된 것인지 알아 내야합니다. 둘 중 먼저 들어온 것을 복사하십시오.

참고 : 끌어서 놓기 기능을 사용하여 데이터를 채 웁니다.

Image of Spreadsheet

나는이

Dim R1, R2, R3 As Range 
Set R1 = Range("E3") 
Set R2 = Range("G3") 
Set R3 = Range("I3") 

If (R1 = R2 Or R1 = R3) Then 
MsgBox "Room Already Used!" 
      With Application 
       .EnableEvents = False 
       .Undo 
       .EnableEvents = True 
      End With 
End If 

같은 것을 사용하여 시도하지만 더 행과 열을 비교해야합니다.

답변

3

첫 번째 사항부터

Dim R1, R2, R3 As Range 
당신은 VB.Net에서이 작업을 수행 할 수 있으며, 세 가지가 Range로 선언되지만 VBA에서, 당신은 명시 적으로 다른 Range 처음 두가 Variant

Dim R1 As Range, R2 As Range, R3 As Range 
로 선언 될 것입니다로 선언해야

여러 행과 열을 비교하려면 루프를 사용할 수 있습니다. 드롭 예를

또한 대신 드래그 &
With Sheet1 '<~~ Change this to the relevant sheet 
    For i = 3 To 8 '<~~ You actual row numbers 
     If .Range("E" & i).Value = .Range("G" & i).Value Or _ 
      .Range("E" & i).Value = .Range("I" & i).Value Then 
      '~~> do something 
     End If 
    Next i 
End With 

를 들어, 당신이 .Undo을 사용하지 않도록하는 데이터 유효성 검사 목록를 사용하는 것이 좋습니다 것입니다. 셀 내용을 지울 수 있습니다.

+0

나는 이것을 시험해 보았다. 드래그 앤 드롭이 아니라면 클라이언트가 워크 시트를 끌어다 놓기를 원했다. – user6670582

0

여기에 VBA가 필요하지 않습니다.

=OR(ISBLANK(E3),COUNTIF($E3:$I3,E3)=1) 

그런 다음 G3와 I3에 셀을 복사하고, 지금까지 당신이 필요로 아래 3 행을 복사 : 다음과 같은 공식으로 셀 E3에 대한 사용자 정의 데이터 유효성 검사 규칙을 설정합니다. 그런 다음 데이터 유효성 검사 마법사를 사용하여 사용자 지정 오류 메시지를 설정할 수 있습니다.

위의 수식은 사용자가 같은 행에서 값만 확인해야한다고 가정합니다.

관련 문제