| 
    
     |  | ▼愛子 さん: 
 皆さんからのアドバイスは、ぜひ、今後に生かしていってくださいね。
 以下、今回のテーマの対応案です。
 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
 
 
 |  |