如何使用VBA汇总选定范围的列?
在select了一个包含数值的范围后,我想通过VBA在每一列的底部input一个=SUM
公式,即在最后一个选定行之后的行上。 对于每一列,它应该将整个select的相应列中的所有值相加。
我怎样才能做到这一点?
现在,我使用macroslogging器给出的代码: ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
。 问题是当我的范围大于10行时,将不考虑底部10以上的行。
这工作:
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
例:
这是一个简单的非VBA方法。
select你想要的和的单元格,然后按Alt – = 。
快照
这是一个单行的VBA代码,可以做同样的事情。
Sub AutoSum() '~~> After you select your range Application.CommandBars.ExecuteMso ("AutoSum") End Sub
没有VBA你也可以做这样的事情:
=SUM(OFFSET(INDIRECT(CELL("address")),1-ROW(),0,ROW()-1,1))
这将对公式所在单元格上的所有单元格进行求和。