2017-12-27 10 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

かは私に二つの単語のいずれかのために結果を与え、私はそれを行う方法の2つのだけの基準 – Tara

+0

を持っている値を返すようにしたいですあなたは最終的に必要な基準を決定します。 'Store'が空白であるかどうかにかかわらず、' Fruit'と 'Area'がそこにある時だけ、いつも見つけてほしいですか? –

+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

関連する問題