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に感謝します。

前の記事 次の記事

トップのヒント