Excel VBA質問箱 IV

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

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


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

【29973】データの検索 oku 05/10/17(月) 16:59 質問[未読]
【29975】Re:データの検索 Statis 05/10/17(月) 17:07 回答[未読]
【29982】Re:データの検索 oku 05/10/17(月) 17:58 お礼[未読]

【29973】データの検索
質問  oku  - 05/10/17(月) 16:59 -

引用なし
パスワード
   申し訳ないのですが、お知恵を拝借したく書き込みました。
環境はwin98SE Excel2000です。

  A   B 
1
2 検索値 
3 番号 名前
4 10  あああ
5 11  いいい
6 12  ううう
7 13  えええ

というデータからB2に名前を入力して検索するコードを書きました

Dim namae As String
Dim kensaku As String

namae = Range("B2").Value
kensaku = ""
Range("B3").Select

'指定したセルが空白になるまで繰り返す
Do Until ActiveCell.Value = ""
  ActiveCell.Offset(1).Select
  kensaku = ActiveCell.Offset(1)
   
'選択した名前と一致したデータをコピーする
  If namae = kensaku Then
    ActiveCell.Offset(1).Select

    With Selection
      .Resize(, .Columns.Count + 19).Select
    End With
    
    Selection.Copy
    
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,       SkipBlanks:= _
    False, Transpose:=False
  End If
Loop

これで実行するとデータの先頭行の「あああ」を検索出来ないんです。
その他のデータは検索出来るんですけど…。
どこをどう修正すればよいでしょうか?
よろしくお願いします。

【29975】Re:データの検索
回答  Statis  - 05/10/17(月) 17:07 -

引用なし
パスワード
   こんにちは

>ActiveCell.Offset(1).Select
>kensaku = ActiveCell.Offset(1)

上記を
ActiveCell.Offset(1).Select
kensaku = ActiveCell

で如何か?

他の方法として
MATCH関数やFind メソッド(検索)を使ってみては如何ですか?

【29982】Re:データの検索
お礼  oku  - 05/10/17(月) 17:58 -

引用なし
パスワード
   ▼Statis さん:

返信ありがとうございましした。

kensaku = ActiveCell

にしたら、違う値を取得してしまいました。
「いいい」を検索したら「ううう」を取得しました。

自己解決策として

kensaku = ActiveCell.Offset(1)

のままで

 A   B 
1
2 検索値 
3    名簿
4 番号 名前
5 10  あああ
6 11  いいい
7 12  ううう
8 13  えええ

と、B3に値を入れて、検索開始位置を
Range("B3").Select
に変更したら検索出来ました。

教えてもらった
MATCH関数やFind メソッド(検索)ヘルプで見ました。
この方法は知らなかったので、これでも一度作成して
みます。

ありがとうございました。

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