Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


31679 / 76734 ←次へ | 前へ→

【50300】Re:合計数値の反映
回答  りん E-MAIL  - 07/7/19(木) 8:01 -

引用なし
パスワード
   たろう さん、おはようございます。
>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を移動していくように組めばいいです。
1 hits

【50289】合計数値の反映 たろう 07/7/18(水) 16:24 質問
【50300】Re:合計数値の反映 りん 07/7/19(木) 8:01 回答
【50324】Re:合計数値の反映 たろう 07/7/19(木) 17:32 発言
【50310】Re:合計数値の反映 駿 07/7/19(木) 12:14 回答
【50311】Re:合計数値の反映 駿 07/7/19(木) 12:26 発言

31679 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free