2017-06-27 7 views
0

にセカンダリデータを転送し、私は次のことを行うことができる午前ことにより、マクロを作成しようとしています:シート2上のデータに基づいて、シート1のデータを、対応する検索し、シート2

のセルの値に基づいて
  1. シート1の列Bの:

    a。 B列のシート2の対応する同じ値を検索する。

    b。検索された対応値の行のシート2のシート1の列Zから列Zのデータを転送する

    c。対応する値の検索が何も返さない場合は、次の

をシート1に列Bで次のセルに移動し、シート1に列の最後のセルまで繰り返し、私がこれまでに作成したコードである、しかしそれはありませんデータを転送しないでください。

Sub TransferDataMaster(rw) 
Sheets("Sheet 1").Activate 
LastRow = Sheets("Sheet 1").Range("B" & Rows.Count).End(xlUp).Row 

For rw = 2 To LastRow 
If Range("B" & rw).Value = "AA" Then Application.Run "TransferData", "AA" rw 
If Range("B" & rw).Value = "BB" Then Application.Run "TransferData", "BB", rw 
Next rw 

End Sub 

-------------------------------------------- 

Sub TransferData(Arg1, rw) 

    DataValue = Sheets("Sheet 1").Range("Z" & rw).Value 

    Sheets("Sheet 2").Activate 
    Range("B2:B1000").Find(CStr(Arg1), LookIn:=xlValues).Activate 
    DTRW = ActiveCell.Row 
    Range("Z" & DTRW).Value = CStr(DataValue) 

End Sub 

助言や援助をいただければ幸いです。事前に感謝、多くの感謝。

+0

をしているのですか?これまでに何を達成しましたか?あなたは何のステップで立ち往生していますか?できるだけ '.activate'を使わず、変数にワークシートを代入してください。それに従ってあなたの質問を更新してください。正確な問題を教えたらすぐにお手伝いします。 –

+0

こんにちはDavid。私の質問に明快さがないと謝罪します。私はマクロコーディングと学習に優れていると私は新しいです。私が作成しているマクロは、シート1の列Bの値に基づいてシート1の列Zから列Zまでのデータを転送し、前の行が転送と共に完了した後に次の行に移動することです。これまでに作成したコードは実行されますが、データを目的の列に転送するのではなく、コードのどの部分を修正するのか、一般的に間違っているのかわかりません。 – Shah

+0

小さな例から始めましょう。これらのことを別々の文書で試してみましょう.1つのセルから別のセルへデータを転送します。 「2」はシート間でデータを転送する。 '3.'はループを構築します。あなたがそこにいても何か問題がある場合は、それに応じて質問を更新し、コメントとして投稿しないでください。これらのスキルを落とすことで、上記の問題を簡単に解決できます。あなたがこれらの事のいずれかにこだわっていたらここに尋ねてください! –

答えて

0

シート2の列ZにVLOOKUP式を使用してみてください:

  • ルックアップ値 - シート2の列B細胞
  • 表アレイ - Bの範囲:シート1からZ
  • Col_index_num - 列数、それはシートにBから列Zにある1
  • 範囲のルックアップ - あなたのコードは何を偽
関連する問題