プロが教えるわが家の防犯対策術!

sheet1にあるデータの集計結果をsheet2に出したいです。
実際、製品の種類は複数、データ数は5000以上あります。
製品の銘柄と倉庫は固定です。
画像では違いますが製品の並びは昇順にしたいです。

これをVBAで行いたいです。

お詳しい方宜しくお願いいたします。

「データを製品別に集計」の質問画像

A 回答 (3件)

こんにちは



ご質問の内容は、セル範囲の取得(=最終行の取得)を除けば、ほとんど「マクロの記録」でまかなえる範疇ですね。

Sub Sample()
Dim sh As Worksheet, mRow As Long

Set sh = Worksheets("Sheet2")
Worksheets("Sheet1").Columns("F:I").Copy sh.Columns("A:D")
sh.Range("A1").Resize(sh.Cells(Rows.Count, 1).End(xlUp).Row, 4) _
.RemoveDuplicates Columns:=1, Header:=xlYes

mRow = sh.Cells(Rows.Count, 1).End(xlUp).Row
If mRow < 2 Then Exit Sub
sh.Range("A1").Resize(mRow, 4).Sort key1:=sh.Range("A1"), Header:=xlYes
With sh.Range("C2").Resize(mRow - 1)
.FormulaLocal = "=SUMIF(Sheet1!F:F,A2,Sheet1!H:H)"
.Value = .Value
End With
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございました!!
冷静に考えればそうですね。。
難しく考えすぎてたかもしれません。

お礼日時:2022/09/13 07:47

こういう流れ



1.作業用シートを生成
2.作業用シートに転記
3.作業用シートをsort
4.作業用シートを集約
5.作業用シート合計と元シート合計を突合しベリファイ
6.作業用シートから転記
7.作業用シートを削除
    • good
    • 1

回答になってませんが・・・。


vbaばっかりで処理してると時々嫌になって、ピポットテーブルでやってます。
    • good
    • 1
この回答へのお礼

ありがとうございます。ピポットテーブル勉強してみます、、

お礼日時:2022/09/13 07:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!