• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル VBA find は別シートを検索できますでしょうか?)

エクセルVBA findで別シートを検索できますか?

このQ&Aのポイント
  • エクセルのVBAを使用して、別のシートを検索する方法について質問です。
  • ブックAを開いている状態で、選択している行のC列セルの値を検索キーワードとして、ブックB内を検索し、検索結果のセルの3つ左のセルの値をブックAで選択していたセルの同じ行のO列(15列目)に入力したいです。
  • マクロを作成しましたがうまくいかないため、別の方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

>下のようなマクロを作成してみましたがうまくいきません。 どううまく行かないのか、エラーがでるのであれば どの行ででるのかも記されると良いと思います Findの使用方法をちゃんと理解できていないようですね 初心者にはFor~Nextの方が使いやすいのではと思います あと、何(book、sheetなど)を対象に処理をしているのかを明確にされた方が良いと思います これを踏まえて、コードを変更してみました Sub test() Dim 検索品目 As String Dim オーダ番号 As Integer Dim i As Long Dim x As Long i = ActiveCell.Row '選択行の3列目セルの値を変数『検索品目』に格納 With Workbooks("ブックA.xls").Worksheets("sheet1") 検索品目 = .Cells(i, 3).Value End With 'for~nextを使用した検索 With Workbooks("ブックB.xls").Worksheets("sheet1") For x = 2 To .Range("G65536").End(xlUp).Row If .Cells(x, 7).Value = 検索品目 Then '検索したセルの3行左のセルの値を変数『オーダ番号』に格納 オーダ番号 = .Cells(x, 7).Offset(, -3).Value Exit For End If Next End With 'ブック A の選択行の15列(O列)にデータ入力 With Workbooks("ブックA.xls").Worksheets("sheet1") .Cells(i, 15) = オーダ番号 End With End Sub 参考まで

hamanyaaki
質問者

お礼

ご回答ありがとうございます! for-nextを使用して検索するなんて、考えもしませんでした。 その他ネストのさせ方、withの使い方等、とても勉強になりました。 やりたかった事が実現できました。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう