• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで検索してコピー)

VBAで検索してコピー | エクセル2003を使っています

このQ&Aのポイント
  • VBAを使用してエクセル2003でデータを検索し、別のシートにコピーする方法について教えてください。
  • エクセル2003で特定のデータを検索し、該当する行をコピーして別のシートに貼り付ける方法について教えてください。
  • VBAの機能を使用して、エクセル2003でデータ検索およびコピーを行う方法について教えてください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

自分でもテストしてみましたが、時刻の検索はお互いの書式の表示形式がちがうと難しいようです。 両者の時刻の表示形式を統一し、コードも以下のように変えてみてください。 Sub test02() Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet Dim rng As Range Set ws1 = Sheets("CSV") '検索先のシート Set ws2 = Sheets("0群加工") '検索データのシート Set ws3 = Sheets("完了") '貼付先シート With ws1.Columns("A") 'A列を頭から検索 i = 2 Do Until ws2.Cells(i, "E").Value = "" 'ws2、E2以下のデータがなくなるまで Set rng = .Find(What:=ws2.Cells(i, "E").Text, LookAt:=xlWhole, After:=.Cells(.Cells.Count)) '検索 If Not rng Is Nothing Then 'あれば n = n + 1 '貼り付け先行カウント rng.EntireRow.Copy ws3.Cells(n, "A") '行のコピペ End If i = i + 1 '検索データ行カウント Loop Set rng = Nothing End With Set ws1 = Nothing Set ws2 = Nothing Set ws3 = Nothing End Sub

maintec
質問者

お礼

前回に引き続き、ご回答頂きありがとうございます。 merlionXX様のお陰様で、上手く行きました。 前回との違いは、 前回は、0群加工シートのデータをコピーしたかったのですが、今回はCSVシートにあるデータが属する行をコピーしたかったので、質問させて頂きました。 ありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

先日ご質問の http://okwave.jp/qa4840846.html といったい何がちがうのでしょうか? Sheets("0群加工") E列2行目以下にある時間データを、Sheets("CSV") のA列から検索し、完全一致でヒットしたSheets("CSV") の行をコピーし、Sheets("完了") の1行目から順に貼り付ければいいのですね? 時間データなので、標示の書式がいろいろあると思いますが、Sheets("0群加工") Sheets("CSV") ともに"h:mm"形式としていますが、違っていたら直してください。 Sub test01() Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet Dim rng As Range Set ws1 = Sheets("CSV") '検索先のシート Set ws2 = Sheets("0群加工") '検索データのシート Set ws3 = Sheets("完了") '貼付先シート With ws1.Columns("A") 'ws1、A列を頭から検索 i = 2 Do Until ws2.Cells(i, "E").Value = "" 'ws2、E2以下のデータがなくなるまで Set rng = .Find(What:=Format(ws2.Cells(i, "E").Value, "h:mm"), LookAt:=xlPart, After:=.Cells(.Cells.Count)) '検索 If Not rng Is Nothing Then 'あれば n = n + 1 '貼り付け先行カウント rng.EntireRow.Copy ws3.Cells(n, "A") '行のコピペ End If i = i + 1 '検索データ行カウント Loop Set rng = Nothing End With Set ws1 = Nothing Set ws2 = Nothing Set ws3 = Nothing End Sub

関連するQ&A