Excel VBA質問箱 IV

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

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


12534 / 13644 ツリー ←次へ | 前へ→

【10032】検索について しゅん 04/1/3(土) 16:21 質問
【10033】Re:検索について Kein 04/1/3(土) 17:38 回答
【10040】Re:検索について とまと 04/1/4(日) 21:54 回答

【10032】検索について
質問  しゅん  - 04/1/3(土) 16:21 -

引用なし
パスワード
   初心者で申し訳ありません。
基本的なことかもしてませんが、お聞きしたいので投稿しました。

ワークシート内で以下のデータがあるとします。

 データ1  30
 データ2  40
 データ3  40
 データ4  29
 データ5  51
 データ6  11
 データ7  23
 データ8  23
 データ9  40

この数値を上から「40」を検索して、ヒットした40の値の隣のセルの「データ1」
「データ3」「データ9」他のセルにひとつずつ表示しないのですがどのように
行えば良いのでしょうか?わかる方いましたらお願いいたします。
.find(after)を使用しても何度も同じセルが表示されてしまいます。

【10033】Re:検索について
回答  Kein  - 04/1/3(土) 17:38 -

引用なし
パスワード
   こんな感じです。

Sub F_Data()
  Dim FR As Range
  Dim Ad As String
 
  Set FR = Columns(2).Find("40", , xlValues, , xlPrevious)
  If FR Is Nothing Then
   MsgBox "検索値が見つかりません", 48
   Exit Sub
  Else
   Ad = FR.Address
  End If
  Do
   Set FR = Columns(2).FindNext(FR)
   MsgBox FR.Offset(, -1).Value
  Loop Until FR.Address = Ad
  Set FR = Nothing
End Sub

【10040】Re:検索について
回答  とまと  - 04/1/4(日) 21:54 -

引用なし
パスワード
   こんばんは
ループで判定してます。D列に表示されます

Sub test()

Dim i As Long
Dim s As Long

s = 1

For i = 1 To Range("a65536").End(xlUp).Row

  If Cells(i, "b").Value = 40 Then
   Cells(s, "d").Value = Cells(i, "a").Value
   s = s + 1
  End If
   
Next i


End Sub

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