将列值汇总到数组中

时间:2014-07-16 20:30:43

标签: arrays excel excel-vba vba

我需要找到一种方法将这些列加到下一行。我正在使用VBA进行练习,但如果不依赖于对每个单元的引用,我似乎无法获得它。

结果应该是一个数组,其中每个项目是表格列的值的总和,然后将数组打印到图片中显示的范围内。

如果列中的行数发生变化会怎样?

Table

这是我尝试过的代码:

Sub cambios_combobox()
Dim librito As Worksheet
Dim celda As Range

Set librito = ActiveWorkbook.Sheets("Tabla Paquetes")
Set celda = Range("A40")
'Range("Table1[[#All],[Column1]]").Select
    Select Case ComboBox1.Text
        Case "Deco"
            Range("eq_asis").Value = Application.Sum(librito.Range("Tabla2[Asistente fotografía]"))
            Range("eq_asis").HorizontalAlignment = xlRight
...

就是这样,引用该行中的每个单元格,将值相加。我认为必须有另一种方法可以做到这一点而不必浪费。

1 个答案:

答案 0 :(得分:0)

以下代码将总计公式放在该行中。它首先显示总计行,然后在其中应用一个公式,该公式对当前列中从第2行(R2C)开始并以和(R [-1] C)正上方的单元格结束的所有可见单元格求和。当将公式传输到单元格时,Excel可能会将此R1C1表示法转换为A1表示法。显然将Sheet2!R1C2更改为您从总和中减去的任何其他单元格。

Public Sub showTotalsMinusOtherCell()
    Dim lst As ListObject
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Set lst = ws.ListObjects("Table1")
    lst.ShowTotals = True
    lst.TotalsRowRange.FormulaR1C1 = "=Subtotal(109,R2C:R[-1]C)-Sheet2!R1C1"
End Sub