- ベストアンサー
Excelで検索を簡単に実行したい
ExcelでCtrl+Fの検索ではなく、セルに検索したいキーワードを入力、 ヒットすると結果のセルに飛ぶ、というような検索方法がないかと探していました。 そしてこちら(http://okwave.jp/qa378182.html)の内容が 自分の希望と同じであったので、参考にさせていただいたのですが ちゃんとヒットしません。 具体的には、検索したい列はB列で、テストとしてここに 1~10の数字を入力します。セルのA2に検索したい数字を入れて Enterを押すと、何行かはちゃんと検索できるのですが、途中から その数字は確かにB列にあるのに見つかりませんという結果 になってしまいます。 A2にキーワードをいれ、B列の検索をしたいので、上記ページに ありましたVBAを下記のように一部修正をしました。 Set myRange = Range("B1:" & Cells(Rows.Count, 5).End(xlUp).Address).Find(Range("A2").Value, lookat:=xlWhole) どこか他に間違っている箇所がありますでしょうか。 よろしくご指導ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> Cells(Rows.Count, 5).End(xlUp).Address というコードは、E列(列番号5)においてデータのある最下行の アドレスを返します。ここで、仮に E 列にデータがなければ どうなるでしょうか? 結果は、「$E$1」が返ってきます。 > Range("B1:" & Cells(Rows.Count, 5).End(xlUp).Address) というのは、「B1:$E$1」というセル範囲になりますので、B1 セル に検索値がなければ「見つかりません」といことになるでしょう。 1. Range("B1:" & Cells(Rows.Count, 2).End(xlUp).Address) 2. Range("B1:" & Cells(Rows.Count, "B").End(xlUp).Address) 1 または 2 のいずれかに修正してみて下さい。
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
B列を検索したいのであれば Cellsの2番目引数は 2になると思いますよ 5だと E列になってしまいます 期待した結果と実際の結果を具体的に書いてみましょう
お礼
cells は列の引数なのですね、分かりました。 これを機会に、VBAを勉強してみたいと思います。 ご解説いただき、ありがとうございました!
お礼
教えていただいた方法で修正できました。 また丁寧にご解説いただきありがとうございます。 これを機にVBAを勉強してみたいと思います。 ありがとうとございました!