能在一個更合適的方法進行,但這個工程
Sub OSR_ReportComplete()
Dim lCol As Long
Dim p As Integer
lCol = Cells(7, Columns.Count).End(xlToLeft).Column
For p = 0 To 12
Cells(15, lCol - p) = Application.Sum(Range(Cells(7, lCol - p), Cells(7, lCol - p - 12)))
Next p
End Sub
此外,如果你的lCol計算爲一個值小於25就摔倒了,雖然在試圖引用列小於1。我'd建議使用Offset
來代替
但是,在Excel公式中也可以非常容易地進行滾動總計。說你的第一個值是A
柱和你的日期是在1
行,在2
行中列A
=SUM($A$1:A1)
和拖動沿着你的範圍
捐贈的其餘部分進入:
公式:
以下代碼將在一行中爲第1行生成以上公式,而不是執行循環。這是一個例子,因爲我不從你的代碼瞭解您的表的版式
Sub OSR_ReportComplete2()
With Range(Cells(1, 1), Cells(1, Columns.Count).End(xlToLeft))
.Offset(1, 0).Formula = "=SUM(" & .Cells(1).Address & ":" & Split(.Cells.Address(RowAbsolute:=False, ColumnAbsolute:=False), ":")(0) & ")"
End With
End Sub
這種情況很容易在R1C1表示法(但是將在Excel工作表中顯示的A1)
Sub OSR_ReportComplete2()
With Range(Cells(1, 1), Cells(1, Columns.Count).End(xlToLeft))
.Offset(1, 0).FormulaR1C1 = "=SUM(" & .Cells(1).Address(ReferenceStyle:=False) & ":R[-1]C)"
End With
End Sub
來源
2017-08-25 14:33:29
Tom
寫可能不是這裏的問題,但是當使用範圍時,您應該始終指定工作表... –
不工作,不是對問題的很好描述。你會得到什麼錯誤?或者它做了什麼? –
我只發佈了我添加的代碼片段來完成滾動總和。此代碼位於循環中,循環通過工作表並執行多個任務。其餘的代碼工作正常,但是當我添加我發佈的代碼時,它不會做任何不同的事情。我本來期望第15行的一組單元格有總和,但我什麼都沒有。 – johankent30