VBAデータ抽出でご教授お願いします。 やりたいこと sheet1のデータの重複する値を削除して sheet2のデータを取り込みsheet3に転記したいです。 ※
VBAデータ抽出でご教授お願いします。 やりたいこと sheet1のデータの重複する値を削除して sheet2のデータを取り込みsheet3に転記したいです。 ※ sheet1のコードのみで重複削除して【サブ・サイズ・賞味はどれもいい】 sheet2のデータを取り込み【C~FまでをサブコードC列とサイズD列の間につけたい】sheet3に転記 VBAは書いてあるのは読み取れる程度の初心者です。 よろしくお願いいたします。
Visual Basic・87閲覧・100
ベストアンサー
文字数の関係で再回答: シート1は使ってません。 理由については終盤に疑問点として挙げてあります。 Sub try() Dim myDic As Object Dim r As Range Dim key As Variant Set myDic = CreateObject("Scripting.Dictionary") With Worksheets("Sheet2") For Each r In .Range("A1", .Cells(Rows.Count, "A").End(xlUp)) If Not myDic.Exists(r.Value) Then Set myDic(r.Value) = r.Range("C1:F1") Next End With With Worksheets("Sheet3") .Columns("D:F").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove For Each r In .Range("A1", .Cells(Rows.Count, "A").End(xlUp)) If myDic.Exists(r.Value) Then myDic(r.Value).Copy r.Range("D1") Next End With Set myDic = Nothing End Sub 以前の回答: >【C~FまでをサブコードC列とサイズD列の間につけたい】 ここの意味が不明。 シート3には画像のD~G列は本来無いので挿入し割り込ませたいと言う事? 書いてあるのが読み取れるって私よりは上級かも。 私は人が作ったコードを理解するのは難しいです。 回答者によっては参考書等とは違う自己流な手段を用いる方もいますので。 ところで不思議なのは『コード』についてですが、何故シート2ではなくシート1の値を使用するのでしょう? 仮にシート1に存在しシート2に存在しない『コード』があれば、シート2の他の値は得られませんよね。 それでもシート1の『コード』重複削除は必要なのですか? 画像で言えば『9004 ガム』『9005 ガム』とかになります。 それでもシート1の『コード』重複削除作業を含んだ値取得は必要なのですか?
質問者からのお礼コメント
ありがとうございました。 コード解読してみます(^^)
お礼日時:5/27 14:27