|
ポン太 さん、こんにちは
以下コードを試しに動かしてください。
*SUMIFではないです。
Sub a()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Ws1_Lr As Single
Dim Rmax As Long
Dim i As Long
Dim App As Range
Dim Ans As Single
Dim T As String
Set ws1 = ThisWorkbook.Worksheets(1) '処理対象のシートを明確にするために変数にセット
Set ws2 = ThisWorkbook.Worksheets(2)
Ws1_Lr = ws1.Range("A65536").End(xlUp).Row '集計シート最下行*キーになるA列で判定
Rmax = ws2.Range("F65536").End(xlUp).Row '集計対象シート最下行*キーになるF列で判定
T = "Apple" 'SUMIFで合計する
i = 1 '開始行
With ws1
For i = 1 To Ws1_Lr 'ws1のA3〜A最終行まで
Ans = 0 '合計収納
For Each App In ws2.Range("AJ2:AJ" & Rmax) 'ws2のAJ1〜AJ最終行まで
If App.Value = T Then 'AJ* が Apple だったとき
'ws2の E* がws1の A* だったとき
If .Range("A" & i).Value = ws2.Range("E" & App.Row).Value Then
Ans = Ans + CLng(ws2.Range("G" & App.Row).Value) 'Ansに加算
End If
End If
Next
.Range("C" & i).Value = Ans '合計書き込み
Next i
End With
End Sub
|
|