VBAで値が一致したときに転記するマクロを組んでいるのですが、うまいこと転記できず困っております。
前提・実現したいこと
ざっくりとどういう動きをさせたいかですが、
商品コードのマスタと、棚卸した結果のブックがあり、両ブックの項番が一致したとき、
棚卸結果をマスタに転記させるというものです。
発生している問題・エラーメッセージ
以下コードにて実行したのですが、そもそもVBAへの理解度が乏しく全量把握できておりません...;;
圧倒的な知識不足により質問の意図がうまく伝えられず申し訳ございませんが何卒、皆様のお力をお借りしたく...
以下、当サイトで質問されていたコードを基に作成いたしました。
Public Sub ブック間転記() 'ループ用の変数 Dim m As Long Dim n As Long Dim row1 As Long 'マスタ C,D列へ書き込む行番号 Dim s1 As Worksheet Dim s2 As Worksheet Set s1 = Workbooks("マスタ.xlsx").Worksheets(1) Set s2 = Workbooks("棚卸結果.xlsx").Worksheets(1) row1 = 2 'それぞれのシートの比較行を最終行までループ For m = 2 To s1.Cells(Rows.Count, 1).End(xlUp).Row For n = 2 To s2.Cells(Rows.Count, 4).End(xlUp).Row 'マスタと棚卸結果列の比較 これだと列ごとに比較してしまうので 'マスタの(m,1)を棚卸結果のD列の全てのデータと比較して、転記が終わってから次の処理に移りたい。 If s1.Cells(m, 1).Value = s2.Cells(n, 4).Value Then s1.Cells(row1, "C").Value = s2.Cells(n, "A").Value row1 = row1 + 1 End If Next Next End Sub
試したこと
補足情報(FW/ツールのバージョンなど)
・マスタは連番で採番されている
・棚卸結果は項番がバラバラ
・マスタ、棚卸結果、どちらも40万行ほど
マスタA列と、棚卸結果D列が一致したとき、マスタC,D列に棚卸結果A,B列を転記したいです。
また、要件が40万行と多いこともあり処理速度の向上についても助言いただきたく...
当方、業務でVBAを使用したことがないのですが必要だとのことで依頼されまして、
周りはVBAを使ったことがない方で解決にも至らず大変困っております...;;;
何卒よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー