您的變量和範圍對象需要在引號之外並與&
連接。 Range的默認值是.Value
。你想通過不是值的地址。
Sub Sum_Formula_In_Lastrow()
lr = Cells(Rows.Count, 2).End(xlUp).Row
lc = Cells(1, 1).End(xlToRight).Column
For x = 4 To lc
Cells(lr, x).Formula = "=SUM(" & Range(Cells(2, x), Cells(lr - 1, x)).Address & ")"
Next x
End Sub
當然這正是R1C1的設計目的。您可以填寫整行不反覆:您希望將範圍限定,即使是主動用片材
Sub Sum_Formula_In_Lastrow()
lr = Cells(Rows.Count, 2).End(xlUp).Row
lc = Cells(1, 1).End(xlToRight).Column
Range(Cells(lr, 4),Cells(lr,lc)).FormulaR1C1 = "=SUM(R2C:R" & lr -1 & "C)"
End Sub
一個最後一個音符。以防萬一表格發生變化。
Sub Sum_Formula_In_Lastrow()
With ActiveSheet
lr = .Cells(.Rows.Count, 2).End(xlUp).Row
lc = .Cells(1, 1).End(xlToRight).Column
.Range(.Cells(lr, 4),.Cells(lr,lc)).FormulaR1C1 = "=SUM(R2C:R" & lr -1 & "C)"
End With
End Sub
@Scott克萊納 - 第一個代碼被成功地將公式中所需的細胞,但不正常 –
@Scott克萊納 - 第二個代碼工作按我的要求,非常感謝 –
@saikrishna解決了該問題與第一個代碼。請在答案上點擊複選標記,標記爲正確。 –