use*_*868 6 excel vba excel-vba
在我选择了包含数值的范围后,我希望通过VBA =SUM
在每列的底部输入一个公式,即在最后一个选定行之后的行上.对于每列,它应该对整个选择的相应列中的所有值求和.
我怎样才能做到这一点?
现在,我正在使用宏录制器给出的代码:ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
.问题是当我的范围大于10行时,它不会考虑底部10以上的行.
这是一个简单的非VBA方法.
选择要求总和的单元格,然后按Alt- =.
快照
这是一个单线VBA代码,可以完成相同的任务.
Sub AutoSum()
'~~> After you select your range
Application.CommandBars.ExecuteMso ("AutoSum")
End Sub
Run Code Online (Sandbox Code Playgroud)
这有效:
Sub MakeSums()
Dim source As Range
Dim iCol As Long
Dim nCol As Long
Dim nRow As Long
Set source = Selection
nCol = source.Columns.Count
nRow = source.Rows.Count
For iCol = 1 To nCol
With source.Columns(iCol).Rows(nRow).Offset(1, 0)
.FormulaR1C1 = "=SUM(R[-" & nRow & "]C:R[-1]C)"
.Font.Bold = True
End With
Next iCol
End Sub
Run Code Online (Sandbox Code Playgroud)
例: