電子書籍の厳選無料作品が豊富!

いつもお世話になっております。
下記のコードで
添付ファイルの黄色反転
の合計を出したいのです。
.Offset(, 6).Value = WorksheetFunction.Sum(R.Offset(1).Resize(, 6))
.Offset(, 6).Value = WorksheetFunction.Sum(R.Offset(2).Resize(, 6))
で行うと答えが違うのと、かつ場所も違います。
おしえてくれませんでしょうか

Sub kzx()
Dim R As Range
For Each R In Range("D3", Cells(Rows.Count, "D").End(xlUp)).SpecialCells(xlCellTypeConstants).Areas

With R
.Offset(, 6).Value = WorksheetFunction.Sum(R.Offset(1).Resize(, 6))
.Offset(, 6).Value = WorksheetFunction.Sum(R.Offset(2).Resize(, 6))
End With

With R.CurrentRegion
.Borders.Weight = xlHairline

With .CurrentRegion
.BorderAround LineStyle:=xlContinuous
End With
End With


Next

End Sub

「SpecialCells(xlCellT」の質問画像

A 回答 (2件)

確かに変動するD列よりかは固定されるC列を基準とした方が良いと思います。


あと変数:R でOffsetしようにもAreasでRは単一のセルではなくなってますしね。

Sub megu()
Dim r As Range

For Each r In Range("C3", Cells(Rows.Count, "C").End(xlUp)).SpecialCells(xlCellTypeConstants).Areas

With r
.Cells(2).Offset(, 7).Value = WorksheetFunction.Sum(r.Cells(2).Resize(, 6))
.Cells(3).Offset(, 7).Value = WorksheetFunction.Sum(r.Cells(3).Resize(, 6))

With .CurrentRegion
.Borders.Weight = xlHairline
.BorderAround LineStyle:=xlContinuous
End With

End With

Next

End Sub
    • good
    • 0
この回答へのお礼

いつもお世話になっております。
cells(2) 有難うございます。
今後使用させていたたきます。
うんすごいです。

お礼日時:2020/02/24 08:01

>For Each R In Range("D3", Cells(Rows.Count, "D").End(xlUp))


なぜ、D列を基準にしているのですか?
C列を基準にすべきだと思うのですが・・・。
C列が定数である範囲のオフセット7列目で、かつ、空白のセル=黄色の部分になるので、
そこに合計を設定するようにしたら、うまくいきそうですね。
    • good
    • 0
この回答へのお礼

なるほど早速試してみます

お礼日時:2020/02/23 23:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!