如何使用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)) 

这将对公式所在单元格上的所有单元格进行求和。