Excel VBA質問箱 IV

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

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


21228 / 76732 ←次へ | 前へ→

【60906】Re:Find検索について
回答  つん  - 09/3/23(月) 11:39 -

引用なし
パスワード
   ▼mao さん:
こんにちは^^


>Sub 検索()
>
>Dim Mynumber As String
>Dim FoundCell As Range
>Dim fs, msg
まず、「fs」はアドレスが格納されるので、String型
「msg」は、メッセージボックスの返り値なので、Long型で宣言されたらいいかと思います。


>Range("F1").Select
> Mynumber = UserForm1.TextBox1.Text
>
> Set FoundCell = Cells.Find(What:=Mynumber, After:=ActiveCell, _
>              LookIn:=xlFormulas, LookAt:=xlPart, _
>              SearchOrder:=xlByRows, _
>              SearchDirection:=xlNext, MatchCase:=False, _
>              MatchByte:=False)
「LookIn」は、今回は文字列を検索するで、「xlValues」じゃないかなあ・・・

 
> With Worksheets("検索").UsedRange.Columns(6)
>
> If Not FoundCell Is Nothing Then
>    fs = FoundCell.Address
     「コード」は繰り返して検索しないので、
      ここで、アドレスを取得しちゃだめです。
>
> msg = MsgBox("会社コードは「" & FoundCell.Offset(, -2) & "」" & Chr(13) & _
>    "会社名は「" & FoundCell.Offset(, -1) & " 」でした。", vbOKCancel)       
>
>If msg = vbCancel Then
>  Exit Sub
>
>?※ここにF列検索後E列会社名=FoundCell.Offset(, -1)代入の式??


  ここで、再び、先ほどヒットしたコードの会社名で新たに検索かけます。
  で、ヒットしたら、ここでアドレスを「fs」に入れて、
>Do
   ヒットしたセルに色づけ
   FindNextで続いて検索
Loop While Not FoundCell Is Nothing And FoundCell.Address <> fs
>
>End If
>End With
>End Sub
>
>
>※↑?の部分が行き詰っている箇所です。

こんな感じかなあ・・・・
「コード」を検索してから、次に「会社名」を検索する前に、「FoundCell」を初期化せんとあかんと思います。

途中で検索する列も変わるので、

> With Worksheets("検索").UsedRange.Columns(6)

これも検討し直した方がいいと思います。

雑な回答ですんませんが・・・・

0 hits

【60905】Find検索について mao 09/3/23(月) 9:24 質問
【60906】Re:Find検索について つん 09/3/23(月) 11:39 回答
【60907】Re:Find検索について Jaka 09/3/23(月) 13:21 発言
【60908】Re:Find検索について mao 09/3/23(月) 17:09 お礼

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