|    | 
     たろう さん、おはようございます。 
>Sheet1にSheet3から引っ張ってきた数値を反映させたいです。 
> 
>1.Sheet1のセル"C7"と同じ品名をSheet3のD列から検索 
>2.Sheet3のG列に書いてある個数を、 
> Sheet1のセル"C7"と一致している物全て合算 
>3.Sheet1のセル"G7"に反映 
>今は 
>Private Sub コマンド_Click() 
>  Range("G7").Value = Application.WorksheetFunction. _ 
>  VLookup(Range("C7"), Worksheets("Sheet3").Range("D:G"), 4, False) 
>End Sub 
>としていますが、これでは当該行の1列目しか反映してくれません。 
 
合計したいのならば、SUMIFワークシート関数を使用してみてはいかがでしょうか。 
Sub test() 
  Dim ws1 As Worksheet, ws2 As Worksheet, Rmax As Long 
  '処理対象のシートを明確にするために変数にセット 
  Set ws1 = ThisWorkbook.Worksheets("Sheet1") 
  Set ws2 = ThisWorkbook.Worksheets("Sheet3") 
  '集計対象シートの最下行:キーになるD列で判定 
  Rmax = ws2.Range("D65536").End(xlUp).Row  
  'SUMIFで合計する 
  ws1.Range("G7").Value = Application.WorksheetFunction.SumIf _ 
     (ws2.Range("D1:D" & Rmax), ws1.Range("C7").Value, ws2.Range("G1:G" & Rmax)) 
  '終了 
  Set ws1 = Nothing: Set ws2 = Nothing 
End Sub 
 
こんな感じです。 
集計していく対象が8行目から下にもある場合、ws1のRangeを移動していくように組めばいいです。 
 | 
     
    
   |