(AdvancedFilter) 平成1年を指定すると平成10年代も抽出されてしまうが?
Question 105.2 Excel VBA Borad (掲示板)より Previous Next
マクロの疑問解決で大変お世話になっています。
下記のコードで、右図のとおりの検索条件で検索すると、該当しない行が表示されることがあります。
具体的には、
検索条件に平成元年を入力したときに該当しないデータが表示され、
検索条件から平成元年を外すと条件どおり表示されて、平成元年の該当者はまったく表示されません。
Sub 検索()
    Range("A12:L254").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Sheets("検索条件").Range("B2:C6"), Unique:=False
End Sub
データは左図のような、生年月日を含む一覧表です。

平成元年の該当者を表示させるためには、どのようにすればいいのでしょうか? 特別なコードがあるのでしょうか?

アドバイスをよろしくお願いします。
Answer   2012.12.27 永井善王
AdvancedFilterメソッド (※1) のご質問ですね。
アドバンスフィルターの検索条件に文字列を指定すると、前方一致検索されます(※2)。 そのため、完全一致検索したい場合は数式で指定しなければなりません。
たとえば、H1 の場合は
="=H1" とします(※3)。 (ご質問の「検索条件」シートのB3セル)

前方一致での検索結果             ・完全一致での検索結果

 ↑ H15 (18行目) が抽出されている       ↑ H15 (18行目) は抽出されていない

 (※1) 一般機能では [フィルター オブションの設定]
 (※2) Excel2002では完全一致検索される
 (※3) セルの書式設定は[標準]

ところで、年内は何日までお仕事なさいますか。 どうか、よいお年をお迎えください。
ありがとうございました
ご親切なアドバイスのおかげで、問題を解決することができました。
お忙しいのに、本当にありがとうございました。問題を”丸投げしない”で、自力解決していくことの大切さとその限界を実感しました。
前方一致検索と完全一致検索についても、「すぐマク」のHPや参考書で学習していきたいと思います。
ありがとうございました。 まずは、お礼まで。 それでは、お元気でよいお年をお迎えください。

 

Excel VBA Macro