プロが教えるわが家の防犯対策術!

右隣のシートにある値を加算したい

「当月累計」シートの3行目の合計各項目ごとの値へ

右隣の「2月(前月)」シート最終行にある各項目累計の値を加算したいができません?

参照先の値がある行が日計累計日計と1列飛ばしになっているため苦慮しています。

全体を通してどのような記述をすればよいかご教授いただけませんでしょうか。
よろしくお願いいたします。

「右隣のシートにある値を加算したい 「当月」の質問画像

質問者からの補足コメント

  • https://gyazo.com/1bd3d15c0b9833f89b9afda41a128a70
    画像をアップしてみました。
    よろしくお願いします。

      補足日時:2021/03/16 18:36
  • 実行後、「当月累計」シートのB3セルの値「64」へ「2月(前月)」シートのC4セルの値「7」を足した結果「71」を

    「当月累計」シートのB3セルへ上書きを繰り返すイメージで試行錯誤していますができません?

      補足日時:2021/03/16 18:47
  • すみませんご指摘通りです。
    加算する値は、最終行に当たる「47」になります。
    また来月になったら3月(前月)シートは4月の当月累計シートの右となりで変わりありません。
    よろしくお願いします。

      補足日時:2021/03/16 19:35

A 回答 (5件)

以下のマクロを標準モジュールに登録してください。



Option Explicit
Sub 当月累計加算()
Dim ws As Worksheet '当月累計
Dim ps As Worksheet '前月累計
Dim maxrow As Long
Dim col1 As Long '当月累計の処理列
Dim col2 As Long '前月累計の処理列
Dim i As Long
Set ws = Worksheets("当月累計")
Set ps = Worksheets(ws.Index + 1)
maxrow = ps.Cells(Rows.Count, 1).End(xlUp).row 'sheetの最大行取得
For i = 1 To 14
col1 = 1 + i
col2 = (i - 1) * 2 + 3
ws.Cells(3, col1).Value = ws.Cells(3, col1).Value + ps.Cells(maxrow, col2).Value
Next
MsgBox ("完了")
End Sub
    • good
    • 0
この回答へのお礼

お考えいただきありがとうございます。
ws.Index + 1
col2 = (i - 1) * 2 + 3
勉強になります、助かりました。

お礼日時:2021/03/16 23:08

No.3です。


With~End With いらなかったですね。

Sub megu_2()
Dim r1 As Range, r2 As Range

Set r1 = Worksheets(Worksheets.Count - 1).Range("B3")
Set r2 = Worksheets(Worksheets.Count).Cells(Rows.Count, "A").End(xlUp)

r2.Range("C1,E1,G1,I1,K1,M1,O1,Q1,S1,U1,W1,Y1,AA1,AC1").Copy
r1.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Application.CutCopyMode = False

Set r1 = Nothing
Set r2 = Nothing
End Sub
    • good
    • 0
この回答へのお礼

お考えいただきありがとうございます。
こんなに短い記述で結果にたどり着くんですね!
高度な技を見せていただき感謝です。

お礼日時:2021/03/16 23:04

勘違いであればスル~してください。



Sub megu()
Dim r1 As Range, r2 As Range

Set r1 = Worksheets(Worksheets.Count - 1).Range("B3")

With Worksheets(Worksheets.Count)

Set r2 = .Cells(Rows.Count, "A").End(xlUp)

r2.Range("C1,E1,G1,I1,K1,M1,O1,Q1,S1,U1,W1,Y1,AA1,AC1").Copy
r1.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Application.CutCopyMode = False

End With

Set r1 = Nothing
Set r2 = Nothing
End Sub
    • good
    • 0

補足ありがとうございました。


念のための確認です。
1.来月になれば、当月累計は4月分なので、「3月(前月)」のシートの累計を、当月累計に加算することになりますが、その「3月(前月)」のシートは、必ず、当月累計シートの右側にあるという前提で良いのでしょうか。

2.
>実行後、「当月累計」シートのB3セルの値「64」へ「2月(前月)」シートのC4セルの値「7」を足した結果「71」を
>「当月累計」シートのB3セルへ上書きを繰り返すイメージで試行錯誤していますができません?

とありますが、そもそも質問は
「右隣の「2月(前月)」シート最終行にある各項目累計の値を加算したいができません?」となっています。
これは、最終行なら、2月26日分(C12)を当月累計のB3に加算かと思いますが、いかがでしょうか。
(「2月(前月)」シートのC4セルの値を加算するのはおかしいという意味です)
    • good
    • 0

画像が不鮮明で良くわかりません。


gyazo.comを利用すると、下記URLのような鮮明な画像がアップできます。
https://gyazo.com/08cff98fc198e0abe6613a99d0239e31

gyazo.comに画像をアップしていただけると助かります。
    • good
    • 0

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