|
みなさん今日は
一番最初は、これがやりたかったのかな?
>コンボで「AprWk1」と選択すると、1.シートのデータを2.シートに抽出する物を作成したいです。
>
>1.1.シートには品目と数値が入っている。
> 2.シートはそれをまとめるためのシートである。
>2.1.シートと2.シートで一致する品目の数値を2.シートに反映させたいのだが、
> 1.シートのAJ列に【Adapter】【Book】【Castle】等々書いてあり、
> 【Apple】の場合にのみ2.シートのC列に数値を反映させたい。
>上記条件があるのだが、それを下記に書いてみたものの、
>どうしても動きません。
>何がおかしいのでしょうか?
>インデックスが有効範囲にありませんと言われます。
>
> Select Case (コンボ)
> Case "AprWk1"
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 Long
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 = 7 '開始行
Ans = 0 '合計収納
With ws1
For i = 7 To Ws1_Lr 'ws1のA7〜A最終行まで
For Each App In ws2.Range("AJ1: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 + ws2.Range("G" & App.Row).Value 'Ansに加算
End If
End If
Next
.Range("C" & i).Value = Ans '合計書き込み
Next i
違ってたらすみません (~o~)
|
|