Excel - セル2をシート2のA列全体と比較する
問題
私はA500を介してsheet1 A2とsheet2 A2を比較しようとしていて、それがsheet2のcolのどこかに存在するならば、それからその行全体を新しいシートにコピーします。
私は他からのたくさんのマクロコードで実験しました、しかしこれまでのところ本当の成功はありません。
コードでそれを言う方法を考え出すことは私にとって少し難しいです。 私はこれにこだわるのに苦労しています。
sub compare()
整数として薄暗いLastRow_1
整数としての薄暗いLastCol_1
Dim Data_1範囲として
整数としての薄暗いLastRow_2
整数としての薄暗いLastCol_2
範囲データとしてDim Data_2
ワークシートとして薄暗いSh_1
ワークシートとして薄暗いSh_2
Dim X As Long
Yとして長く薄暗い
薄暗いC_1範囲
薄暗いC_2範囲として
Sh_1 = ActiveWorkbook.Sheets( "Master")に設定します。
Sh_2 = ActiveWorkbook.Sheets( "Inventory")に設定します。
LastRow_1 = Sh_1.range( "A5000")。End(xlUp).Row
LastCol_1 = Sh_1.range( "A5000")。End(xlToLeft).Column
Data_1 = Sh_1.range( "A2")に設定します。サイズ変更(LastRow_1、LastCol_1)
LastRow_2 = Sh_2.range( "A5000")。End(xlUp).Row
LastCol_2 = Sh_2.range( "A5000")。End(xlToLeft).Column
Data_2 = Sh_2.range( "A2")に設定します。サイズ変更(LastRow_2、LastCol_2)
Data_1のC_1ごとに
Data_2のC_2ごとに
C_2 = C_1の場合
'sheet1のセルと一致するsheet2のセルを見つけました
'今あなたがする必要があることをする
Data_2.EntireRow.Copyコピー先:=ワークシート( "New_Master")。範囲( "A5000")。終了(xlUp)。オフセット(1、0)
終了の場合
次のC_2
次のC_1
終了サブ
これを実行すると、不一致を含め、New_Masterという名前のシートにすべてがコピーされるだけです。
何が足りないの? それは明白でなければなりません、それは通常そうです。
溶液
あなただけ書く必要があります:
Data_2.EntireRow.Copy
シート "在庫"の列Aに対応する全範囲 "Data_2"をコピーします。
Data_1と一致するData_2の行だけをコピーしたい場合は、次のようにします。
C_2.EntireRow.Copy
それでおしまい!
注意
フォーラムでこのヒントを提供してくれたIvan-hoeに感謝します。