2017-05-22 2 views
0

범위의 모든 셀 일치 값을 찾는 매크로를 만들었습니다. 사용자는 여기에 범위 내의 모든 일치하는 셀 값을 찾습니다.

enter image description here

내 코드

입니다 ... 그것은 그에게 다음 예를 Order Number purchase number 다음 part number에 대한 일치하는 셀을 보여줍니다 그런 다음 셀 A2에서 예를 numb 위해 그가 Find 버튼을 클릭 할 때마다 입력
Sub find_matched_cells() 
    w = ActiveWorkbook.Sheets("Sheet4").Range("A2") 

    ActiveWorkbook.Sheets("Sheet4").Range("A4:A104").Find(What:=(w), After:=ActiveCell, LookIn:=xlFormulas, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False).Activate  
End Sub 

잘 작동하지만 예를 들어 사용자가 내 범위에 있지 않은 셀을 누르면 find 버튼이 작동하지 않습니다. A104은 다음를 ActiveCell 내 범위되지 않습니다 그것은 오류를 줄 것이다 : 문제는 A4로하지 않는 범위에서 셀을 선택한 경우 실수로 예를 들어

After:=ActiveCell 

입니다.

예를 들어 첫 번째 ActiveCell이 A4부터 시작하고 첫 번째로 일치하는 셀을 찾으면 ActiveCell이 해당 값을 취합니다.

다른 제안 사항이 있으십니까? 고맙습니다.

답변

1

한 가지 방법은 이것이다 ...

Sub find_matched_cells() 
    Dim Rng As Range 
    Set Rng = ActiveWorkbook.Sheets("Sheet4").Range("A4:A104") 
    w = ActiveWorkbook.Sheets("Sheet4").Range("A2") 
    If Intersect(ActiveCell, Rng) Is Nothing Then Range("A4").Select 
    Rng.Find(What:=(w), After:=ActiveCell, LookIn:=xlFormulas, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False).Activate 

End Sub 
1

교차로를 확인할 수 있습니다. 코드를 다시 작성하는 것은 실제로 발견 된 셀 각각에 대해 수행해야 할 작업에 따라 코드를 약간 재 작성한 것입니다. 값을 찾지 못하면 오류를 피하기 위해 아래 코드를 수정했습니다.

Sub x() 

Dim rFind As Range, sAddr As String, w 

w = ActiveWorkbook.Sheets("Sheet4").Range("A2") 

With ActiveWorkbook.Sheets("Sheet4").Range("A4:A104") 
    Set rFind = .Find(What:=w, LookIn:=xlFormulas, LookAt:=xlPart, MatchCase:=False, SearchFormat:=False) 
    If Not rFind Is Nothing Then 
     sAddr = rFind.Address 
     Do 
      rFind.Select 
      MsgBox w & " found at " & rFind.Address 
      Set rFind = .FindNext(rFind) 
     Loop While rFind.Address <> sAddr 
    End If 
End With 

End Sub 
+0

감사하지만 난를 ActiveCell 실수로 다른 범위에서 slected 경우에도 매크로가 일치하는 모든 값을 표시합니다합니다. ActiveCell이 내 범위에있는 경우에만 코드가 작동합니다. – JuniorDev

+0

위의 다른 접근 방식을 편집했지만 최종 목표가 무엇인지 모릅니다. – SJR

+1

대단히 감사합니다 :) – JuniorDev

관련 문제