Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12378 / 13646 ツリー ←次へ | 前へ→

【10825】数値の検索について教えてください okada 04/2/15(日) 12:26 質問
【10827】Re:数値の検索について教えてください りん 04/2/15(日) 13:48 回答
【10828】Re:数値の検索について教えてください かみちゃん 04/2/15(日) 14:11 回答
【10829】Re:数値の検索について教えてください okada 04/2/15(日) 14:16 お礼

【10825】数値の検索について教えてください
質問  okada  - 04/2/15(日) 12:26 -

引用なし
パスワード
   変数・・・検索したい数値
Set RepRow = Worksheets("sheet1").Columns(1).Find(変数)
RowNum = RepRow.Row
msgbox Worksheets("sheet1").Rows(RowNum).Columns(1).Value

上記のように検索しています。
たとえば,sheet1の1列目に数値データが入っているとします。
この列には、1の数値がなくて10の数値があるとします。ここで1を検索すると10がヒットしてしまいます。おそらく文字列として認識されてしまっていると思いますが、検索したい数値だけヒットさせるにはどうしたらいいのでしょうか。

【10827】Re:数値の検索について教えてください
回答  りん E-MAIL  - 04/2/15(日) 13:48 -

引用なし
パスワード
   okada さん、こんにちわ。

>検索したい数値だけヒットさせるにはどうしたらいいのでしょうか。
 編集→検索 で、「完全に同一なセルだけ検索する」にチェックをつけて検索してみると記録の結果はこんな感じです。

Sub Macro1()
' マクロ記録日 : 2004/2/15
Cells.Find(What:="1", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    ).Activate
End Sub

Findメソッドの名前付き引数LookAtにxlWholeを指定すると検索したい数値だけヒットします。
詳細はヘルプを見てね。

【10828】Re:数値の検索について教えてください
回答  かみちゃん  - 04/2/15(日) 14:11 -

引用なし
パスワード
   こんにちは。かみちゃん です。

すでに、りんさんからも回答がでていますが、Findメソッドの名前付き引数LookAtにxlWhole(完全一致)を指定します。
さらに、一致しなかった場合、後続処理でエラーになるので、次のようにしてみてはいかがでしょうか?
Set RepRow = Worksheets("sheet1").Columns(1).Find(変数, LookAt:=xlWhole)
If RepRow Is Nothing Then
 MsgBox "一致データなし"
Else
 RowNum = RepRow.Row
 MsgBox Worksheets("sheet1").Rows(RowNum).Columns(1).Value
End If

【10829】Re:数値の検索について教えてください
お礼  okada  - 04/2/15(日) 14:16 -

引用なし
パスワード
   りんさん、かみさんありがとうございました。
検索することができました。
またよろしくお願いします。

12378 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free