• ベストアンサー

検索条件を文字列にするには

お世話になっています。 AdvancedFilterなどで検索条件をRANGEではなく文字列にすることは可能ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

これはできません。 参考 http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page17.htm まやかし的ですが、やりたいことは下記と似てませんか 例データ A列  B列   F列 第2行目から、第1行は表見出しとして。かつF2:F3は使わないセルとする(どこのセルでも良いが)。 住所 氏名 氏名 東京 植田 諏訪 横浜 長野 鎌倉 諏訪 熱海 飯田 豊橋 山科 東京 大月 熱海 植田 横浜 諏訪 鎌倉 諏訪 横浜 木下 東京 山科 横浜 長野 Sub test01() x = InputBox("検索文字") y = InputBox("見出し") Cells(2, "F") = y Cells(3, "F") = x For j = 1 To 10 If Cells(2, j) = y Then Exit For Next j Cells(30, "A") = y Range(Cells(2, j), Cells(30, j)).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Range(Cells(2, "F"), Cells(3, "F")), _ CopyToRange:=Range("A30:A60"), Unique:=False Range("F2:F3") = "" End Sub 結果 氏名 諏訪 諏訪 諏訪 やり方 Inputboxで「氏名」、検索内容を「諏訪」と答える。 A30以下に結果が出る。 そこかしこに仮定が入ってますので、修正して、自由化してください。

hetox2
質問者

お礼

参考にしてみます。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

CriticalRangeは、字の如くRangeObjectの指定ですから AdvancedFilterメソッドを使う限り無理です。 どうしても文字列を使いたいのなら AdvancedFilterメソッドの代わりに For NextとかDo Loop等を使うことになります。  

hetox2
質問者

お礼

loopなども試してみます。ありがとうございました。

すると、全ての回答が全文表示されます。
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 AdvancedFilterの第2引数のCriteriaRangeに文字列を設定したいという意味であれば、 できないと思います。 検索条件を入力した『セル範囲』を指定しなければいけません。 作業エリアやダミーシートなどに、その『文字列』をセットすればいいだけなのではありませんか? VBAから実行するなら非表示にしておけばそれほど気になりませんよ^ ^ #意味が違ってたらごめんなさい。

hetox2
質問者

お礼

そうですね。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A