2017-10-03 17 views
0

Outlookから電子メールを送信するためのマクロを作成しようとしています。私はコードを与えられているために未処理のデータを編集することはほとんどありません。アカウントの値に基づいて別のシートからデータを取得する

私はVBAに新しくなったので、Vlookupの機能の使い方はわかりませんし、またvlookupをExcelで使うのにもあまりよく慣れていません:(マスターデータ(シート名)からデータを取得しようとしています-Col Aは、私はコードがコルAであればそこでの電子メールの出力用紙にコルBの値を取得したい。アカウント&コルBが値を持っている。

マスタデータのサンプル

Account Value 
803  A 
691  B 
8010 C 

私は値をコピーしますあなたのお手伝いができますか?

コルAコル私はここで

Account Value 
803  Copy values from Master data depending on Account Value 
691  Copy values from Master data depending on Account Value 
8010 Copy values from Master data depending on Account Value 
+1

'= VLOOKUP (A2、MasterDataSheet!A:B、2、FALSE) ' –

+0

ありがとう...あなたはvbaコードで私を助けることができますか? – abi

答えて

2

は私のコードは、イムは、VBAのデフォルトVLOOKUP関数を使用しますが、VLOOKUPがどのように動作するかを知るために、その関数の背後にあるロジックを使用しないでしようとしている

With Sheets("Master Data") 
    i1 = 2 
    Do While Sheets("Email Output").Cells(i1, 1).Value <> vbNullString 
     i2 = 2 
     Do While .Cells(i2, 1).Value <> vbNullString 
      If Sheets("Email Output").Cells(i1, 1).Value = .Cells(i2, 1).Value Then 
       Sheets("Email Output").Cells(i1, 2).Value = .Cells(i2, 2).Value 
       Exit Do 
      End If 
      i2 = i2 + 1 
     Loop 
     i1 = i1 + 1 
    Loop 
End With 
+0

ありがとうございます。私はこのコードを試しました。マスターデータから正しく値を取得していますが、Col Bにデータをコピーしたいと思います。私を助けてくれますか? – abi

+1

X: 'Sheets(" Email Output ")。セル(i1、X).Value = .Cells(i2、2).Value'、あなたのケースの列には、注文9があります。 (i1、9).Value = .Cells(i2、2).Value' –

+0

ありがとうございましたAgung – abi

関連する問題