|
エラーの原因は、
>For k = 2 To Range("A65536").End(xlUp).row
この、Range() の前に ピリオドが足りないせいでしょうか。
あと、row って、小文字になっていますが、row という名前の変数を宣言していたりしませんか?
もしそうなら、別の名前にしたほうが良いです。
さて、5つのSum() を地道に書いても良いのですが、配列が使えそうなので、配列を利用してみます。
内容がわからなければ、ヘルプを読んだり、再度質問したりしてください。
Sub test()
Dim k As Long
Dim c(1 To 5) As Range
Dim i As Long
Dim j As Long
Dim v As Variant
With Worksheets("シート3")
Set c(1) = .Range("I2:Y2")
Set c(2) = .Range("AC2:AQ2")
Set c(3) = .Range("AR2:BB2")
Set c(4) = .Range("AF2:AH2")
Set c(5) = .Range("AL2:AQ2")
For k = 2 To .Range("A65536").End(xlUp).Row
i = k - 2
For j = 1 To 5
v = Application.Sum(c(j).Offset(i))
If IsError(v) Then v = 0
Worksheets("シート4").Cells(k, j + 30).Value = v
Next j
Next k
End With
End Sub
コピーは上手くいってよかったですね。
|
|