|
たろう さん、おはようございます。
>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を移動していくように組めばいいです。
|
|