|
▼愛子 さん:
皆さんからのアドバイスは、ぜひ、今後に生かしていってくださいね。
以下、今回のテーマの対応案です。
B列(合計列)には数式が入っているのでしょうか?
コードでは、B列に対しては何もしていません。
Sub 集計から一致のシートに金額転記2()
Dim c As Range
Dim i As Long
Dim dic As Object
Dim mm As Long
Dim nameV As Variant
Dim mmV As Variant
Do
mm = Application.InputBox("作業する月をいれてください", Type:=1)
If mm = 0 Then Exit Sub 'キャンセルボタン
Select Case mm
Case 1 To 12
Exit Do
End Select
MsgBox "1〜12の範囲で入力してくださいね"
Loop
If mm < 4 Then mm = mm + 12
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("集計")
'集計シートの名前と金額をDictionaryに格納(2行目以降)
For Each c In .Range("E2", .Range("E" & .Rows.Count).End(xlUp))
dic(c.Value) = dic(c.Value) + c.EntireRow.Range("L1").Value
Next
End With
With Sheets("一致")
'一致シートの A列と当該月列の内容(2行目以降)を配列に格納
With .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
nameV = .Value
mmV = .Offset(, mm - 2).Value
For i = 1 To UBound(nameV, 1)
If dic.exists(nameV(i, 1)) Then mmV(i, 1) = dic(nameV(i, 1))
Next
.Offset(, mm - 2).Value = mmV
End With
.Select
End With
MsgBox "集計が終わりました"
Sheets("入力伝票").Select
End Sub
|
|