マクロを実行するたびに調整する必要がある =SUMIF 式があります。式の 3 番目の部分である合計範囲は、毎回 1 列ずつシフトする必要があります。これを月に 1 回実行します (各列は 1 か月を表します)
LngCnt
うまく機能する変数を使用するようにアドバイスを受けました。しかし今、私は同じワークシートにさらに 3 つのセクションを追加することを余儀なくされました。これらはすべて =SUMIF 式を使用し、すべてマクロを実行するたびに調整する必要がありますが、合計範囲が異なります (したがって、異なる列からプルされます)。
同じ変数を実行しようとしましLngCnt
たが、カウントが保存されるという問題にすぐに遭遇したため、計算前に 2 番目のセクションのカウントが 2 から始まりました。+2 が適切な列になるように開始点を調整することもできますが、問題は、これを毎月行う必要があることです。ワークブックを閉じるたびにカウントがリセットされるため、2 か月目に行って実行すると、正しく実行されません。
元の投稿のリンクは次のとおりです: Excel-Macro Help: LngCnt
コードの一部を次に示します (4 つのセクションのうちの 2 つ)。
ActiveCell.FormulaR1C1 = "=SUMIF('Worksheet1'!R5C1:R159C1,RC1,'Worksheet1'!R5C" & 13 + LngCnt & ":R159C" & 13 + LngCnt & ")"
LngCnt = LngCnt + 1
Range("B13").Select
Selection.AutoFill Destination:=Range("B13:B17"), Type:=xlFillDefault
Range("B13:B17").Select
Range("B23").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF('Worksheet2'!R3C6:R47C6,RC1,'Worksheet2'!R3C" & 16 + LngCnt & ":R47C" & 16 + LngCnt & ")"
LngCnt = LngCnt + 2
Range("B23").Select
Selection.AutoFill Destination:=Range("B23:B32"), Type:=xlFillDefault
Range("B23:B32").Select
アップデート
> Public LngCnt As Long
Sub Actual()
'
' Actual Macro
'
LngCount = ActiveWorkbook.Names("state").Value
ActiveCell.FormulaR1C1 = "=SUMIF('Workbook1'!R5C1:R159C1,RC1,'Workbook1'!R5C" & 13 + LngCnt & ":R159C" & 13 + LngCnt & ")"
LngCnt = LngCnt + 1
Range("B13").Select
Selection.AutoFill Destination:=Range("B13:B17"), Type:=xlFillDefault
Range("B13:B17").Select
ActiveWorkbook.Names("state").Value = LngCnt
End Sub