我需要找到一种方法将这些列加到下一行。我正在使用VBA进行练习,但如果不依赖于对每个单元的引用,我似乎无法获得它。
结果应该是一个数组,其中每个项目是表格列的值的总和,然后将数组打印到图片中显示的范围内。
如果列中的行数发生变化会怎样?
这是我尝试过的代码:
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
...
就是这样,引用该行中的每个单元格,将值相加。我认为必须有另一种方法可以做到这一点而不必浪费。
答案 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