- 締切済み
エクセルVBAでリストの検索処理について
エクセルで以下の処理がしたいのですが分かりません。 初めての質問なので質問の仕方もご教示いただければ幸いです。 (1)sheet1のワードリストを読み込む (2)読み込んだリストを元に該当するワードがあるかをsheet2で検索し該当したレコードをsheet3にコピーする 例 【sheet1のワードリスト】 山本 木下 田中 【sheet2のレコード】 大塚,100,男,3000,0.5 木下,50,男,1000,0.2 田中,100,女,3000,0.5 森田,100,男,2000,0.5 田中,10,男,600,0.1 【sheet3のにコピーされたレコード】 木下,50,男,1000,0.2 田中,100,女,3000,0.5 田中,10,男,600,0.1 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
シート1のワードリストをDictionaryオブジェクトに放り込んで、シート2を上から順に取得する。 取得されたデータがDictionaryに入っているかチェックをして、入っていたら シート3に書き出す。 >大塚,100,男,3000,0.5 これが1つのセルなのか、複数のセルなのかがわかりませんけどね。 ご参考まで。
- hige_082
- ベストアンサー率50% (379/747)
お初です 「禁止事項」の「丸投げ・依頼」をよく読んでくださいね 上のような理由からサンプルです Sub test() Dim a As Variant Dim i As Integer, ii As Integer, iii As Integer For i = 1 To [sheet1!a65536].End(xlUp).Row For ii = 1 To [sheet2!a65536].End(xlUp).Row If Worksheets("sheet1").Cells(i, 1).Value = Worksheets("sheet2").Cells(ii, 1).Value Then iii = [sheet3!a65536].End(xlUp).Row + 1 a = Worksheets("sheet2").Range("a" & ii & ":e" & ii) Worksheets("sheet3").Range("a" & iii & ":e" & iii) = a End If Next ii Next i End Sub エラー処理、アレンジはご自分で