2014-09-08 7 views
-1

셀에서 값을 검색 한 다음 그 값이 발견되면 무언가를 수행 할 수있는 코드가 있습니다. 내 텍스트 단계는 하나의 셀에서 두 개의 값을 검색하는 것입니다. 두 값이 발견되면 무언가를하십시오.Excel VBA 하나의 셀에서 여러 값을 찾습니다.

이것은 1 값을 검색하는 코드입니다.

Dim C As Range 
Set SrchRng = ActiveSheet.UsedRange 
Do 
    Set C = SrchRng.Find("Wash", LookIn:=xlValues) 
    If Not C Is Nothing Then C.EntireRow.Delete 
    Loop While Not C Is Nothing 

제 질문은 어떻게 하나가 아닌 두 단어를 찾아 볼 수 있습니까?

예를 들어 세포가

를 포함 할 수 있습니다 들어 나는 단어 고양이 매트와 세포를 찾을 필요가

"고양이가 매트에 앉아". 나는 어떻게 이런 일을하는지 오랫동안 인터넷을 보았지만 도움이되는 것 같지는 않다. 사전에

감사합니다!

I

+0

을 '바라 : = xlPart' 그러면 셀에서 "매트"와 "고양이"중 하나 또는 둘 모두를 찾을 수 있습니다. –

+0

매트를 정교하게 표현할 수 있습니까? LookAt : = xlPart에 익숙하지 않습니다. – Lancealott92

답변

1

당신 수 범위에서 루프 및 각 셀 검사 : 당신이 Find``에 인수를 추가하면 내가 믿는

Sub FindBoth() 
    Dim r As Range 
    For Each r In ActiveSheet.UsedRange 
     v = r.Value 
     If InStr(v, "cat") > 0 And InStr(v, "matt") > 0 Then 
      r.EntireRow.Delete 
     End If 
    Next r 
End Sub 

Dim r As Range 
Dim i As Long 
Dim x As Long 
Dim y As Long 

i = 1 
x = 1 
y = 1 

For Each r In ActiveSheet.UsedRange 
    v = r.Value 
    If InStr(v, "ION") > 0 And InStr(v, "Dog") > 0 Then 

     r.EntireRow.Cut 
     Debug.Print (r.Value) 

     Union(Cells(i, 7), Cells(x, 8), Cells(y, 9)).Select 
     ActiveSheet.Paste 
     Application.CutCopyMode = False 
     i = i + 1 
     x = x + 1 
     y = y + 1 




    End If 
Next r 
+0

완벽한 게리! 고마워, 전 r.EntireRow.Offset 또는 다른 뭔가를 할 수있는 전체 행을 삭제하려면 뭔가 다른 일을할까요? – Lancealott92

+0

값을 찾으면 전체 행을 잘라내어 붙여 넣을 수 있도록이 코드를 변경하려고했습니다. 그러나 내 목적지 범위가 일치하지 않는다는 오류가 발생합니다. 전체 행은 3 열이며, 결합을 사용하여 붙여 넣을 셀을 3 개 선택했습니다. 이것이 왜 작동하지 않는지 나는 이해할 수 없다. @Gary – Lancealott92

관련 문제