2017-12-27 1 views
0

Excel에서 검색 테이블을 만들었으므로 VBA 코드를 사용하여 나머지 통합 문서에서 특정 단어를 검색하고 싶습니다. 다음은 내 테이블의 예입니다.VBA 검색 테이블에서 공백 셀 제외

과일 스토어 지역

나는 문자열로이 값을 설정,하지만 난 하나 개의 항목이 비어 가진 다음 매크로를 실행과 문제가 있어요. 그래서 과일과 지역만을 찾고 싶다면 가게가 비어 있기 때문에 달리지 않을 것입니다. 각 줄을 채우지 않고 통합 문서를 검색 할 수있는 방법이 있습니까?

다음은 데이터를 복사하는 데 사용하는 코드입니다.

finalrow = Cells(Rows.Count, 1).End(xlUp).Row 



For i = 1 To finalrow 
If Cells(i, 1) = Fruits And Cells(i, 2) = Store And Cells(i, 3) = Area Then 
Range(Cells(i, 1), Cells(i, 3)).Copy 
ssheet.Select (Workbook sheet to paste) 
Range("A100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 
+0

는 OR은 두 단어의 나에게 결과를 제공하고 나는 그것이 – Tara

+0

이 어떻게 단지 두 가지 기준을 가지고 값을 반환 할 궁극적으로 필요한 기준을 결정합니다. 'Store'가 비어 있거나 채워져 있는지 여부에 관계없이 항상 '과일'과 '지역'이있는 시간 만 찾을 수 있습니다. –

+0

안녕하세요, 매장을 비워 두었더라도 과일과 지역의 값이 일치하는지 확인하고 싶습니다. – Tara

답변

2

사용 IIF() :

If IIF(Fruits<>"",Cells(i, 1) = Fruits,True) And _ 
    IIF(Store<>"",Cells(i, 2) = Store,True) And _ 
    IIF(Area<>"",Cells(i, 3) = Area,True) Then 

은 또한 선택의 사용을 피하십시오. 단지 값을 원하는 경우 또한, 단지 값을 할당하고 클립 보드를 건너 뜁니다

With ActiveSheet 
    finalrow = .Cells(Rows.Count, 1).End(xlUp).Row 

    For i = 1 To finalrow 
     If IIf(Fruits <> "", .Cells(i, 1) = Fruits, True) And _ 
      IIf(Store <> "", .Cells(i, 2) = Store, True) And _ 
      IIf(Area <> "", .Cells(i, 3) = Area, True) Then 

      ssheet.Range("A100").End(xlUp).Offset(1, 0).Resize(1, 3).Value = .Range(.Cells(i, 1), .Cells(i, 3)).Value 
     End If 
    Next i 
End With 
+0

이것이 작동하지 않습니다. 누락 된 것이 있습니까? – Tara

+0

무슨 뜻입니까, 작동하지 않았습니까? 그것은 많은 일이 될 수 있습니다. –

+0

안녕하세요. 마지막 부분이 작동하지 않습니다. .Range 및 .Cell은 유효하지 않거나 규정되지 않은 참조입니다. – Tara