如何创build可以将未知数字列和固定行数相加的代码?

我正在尝试编写能够在电子表格中添加任意数量的列的代码。 我很清楚这可以是硬编码,但是我试图编写的代码,可以使用任意数量的列,而无需每次更改代码。

这是我想要输出的(总计列在每列的底部):

A | BA | B | C ----- | ----- ----- | ----- | ----- 20 | 30 20 | 30 | 4 ----- | ----- ----- | ----- | ----- 3 | 45 Now another column is added: 3 | 45 | 55 ----- | ----- ----- | ----- | ----- 13 | 4 13 | 4 | 15 ------------- --------------------- 36 | 79 36 | 79 | 74 

这是我现在的代码:

 Sub Button1_Click() Range("b1").Select ActiveCell.End(xlDown).Select Range("b1").Select ActiveCell.End(xlDown).Select Dim vStartRow As Integer vStartRow = 2 Dim vEndRow As Integer vEndRow = ActiveCell.Row Dim vStartColumn As Integer vStartColumn = 2 Dim vEndColumn As Integer vEndColumn = ActiveCell.Column Cells(vEndRow + 1, vEndColumn).Formula = "=sum(b" & vStartRow & ":b" & vEndRow & ")" Cells(vEndRow, vEndColumn + 1).Select End Sub 

注:我希望每个计算发生在单击一个button,而不是一次

使用这样的R1C1表示法。

 With Sheet1 '/* Change with your actual sheet code name */ Dim lc As Long, fr As Long Dim r As Range, c As Range fr = 3 '/* change it to your actual static row lc = .Cells(fr, .Columns.Count).End(xlToLeft).Column Set r = .Range("A1", .Cells(3, lc)) For Each c In r.Offset(fr).Resize(1) If Not c.HasFormula Then c.FormulaR1C1 = "=SUM(R[-" & fr & "]C:R[-1]C)" Exit For End If Next End With 

应该驻留在Module然后在Button进行分配。

下面是我为您在上面的示例中查找的输出创build的函数。 这个代码将添加任意数量的列,并将在第5行给你总数。你可以在一个button上实现这个function。

 Sub AddColumns() Dim ColumnCount As Integer Dim Rownumber As Integer Dim ColumnNumber As Integer Dim TotalValue As Integer ColumnCount = ActiveSheet.UsedRange.Columns.Count For ColumnNumber = 1 To ColumnCount TotalValue = 0 For Rownumber = 2 To 4 TotalValue = TotalValue + Cells(Rownumber, ColumnNumber) Next Rownumber Cells(5, ColumnNumber) = TotalValue Next ColumnNumber End Sub