|
こんにちは。かみちゃん です。
> シート1のN列の合計数値を上から順に参照し、シート2の該当する表(区分)
> の当該月の該当する職場コードのセルに加算していきたい
日付は、70121とある場合、2桁目と3桁目が月であるという前提、
7月以降データにはとりあえず対応しないという前提ですと、
以下のようなコードでできると思います。
Sub Sample1()
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim LastCell1 As Range
Dim LastCell2 As Range
Dim c As Range
Dim intMM As Integer
Dim intCol As Integer
Dim lngRow As Long
Dim lngFindRow As Long
Set WS1 = Sheets("Sheet1")
Set WS2 = Sheets("Sheet2")
Set LastCell1 = WS1.Cells(Rows.Count, "B").End(xlUp)
Set LastCell2 = WS2.Cells(Rows.Count, "B").End(xlUp)
For Each c In WS1.Range("B2", LastCell1)
intMM = Val(Mid(c.Value, 2, 2))
For lngFindRow = 2 To LastCell2.Row Step 27
intCol = 0
On Error Resume Next
intCol = Application.Match(c.Offset(, 7).Value, WS2.Rows(lngFindRow), 0)
On Error GoTo 0
If intCol > 0 Then
lngRow = 0
On Error Resume Next
lngRow = Application.Match(c.Offset(, 1).Value, WS2.Cells(lngFindRow + 2, "B").Resize(25), 0)
On Error GoTo 0
If lngRow > 0 Then
lngRow = lngFindRow + lngRow + 1
End If
Exit For
End If
Next
With WS2.Cells(lngRow, intCol + intMM - 1)
.Value = .Value + c.Offset(, 12).Value
End With
Next
MsgBox "終了しました"
End Sub
なお、7月以降のデータに対応する場合は、一部を修正することで対応可能です。
|
|