嗨,大家好,我需要我的宏,我有2组动态表,需要在最底部添加。但是问题在于那两组数据是动态的
我创建了宏,其中这两组数据的总和在底部。
我需要对2组数据进行4个单元的最终求和,这有可能吗?
谢谢!
答案 0 :(得分:0)
我的意思是,没有什么可以阻止您使用=D(X) + D(Y)
,即使在动态范围内也可以完美运行...或者至少在您提供的示例中我会认为
尽管如果您绝对坚持在此使用VBA:
前两个步骤是可选的,但我建议您这样做,因为您说过两个表应位于底部,因此为了保持一致性,并且在添加新数据后不超出表范围,我建议这样做。还有我的其余代码假定,您确实将它们更改为表
Insert->Table
)单击表格,选择Design
标签并编辑
2.1。表格名称-简单易记
2.2。添加总计行,而不是手动汇总额外行中的值
请紧记,您可能必须将向表中添加数据的方式更改为ListRow.Add()
,以保持内容一致
将两个总计存储到变量中
在假定条件下代码是正确的,您的表分别称为“ Table1”,“ Table2”,它们在工作表上称为“ Sheet1”,总计位于表的第二列。如果没有,请进行相应的更改。
将结果输出到某个地方,我将其打印在D16中,但请将其更改为所需的任何位置。
实际代码:
Private Sub sum_totals()
Dim sum1 As Long
Dim sum2 As Long
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
sum1 = ws.ListObjects("Table1").TotalsRowRange(2)
sum2 = ws.ListObjects("Table2").TotalsRowRange(2)
ws.Range("D16").Value2 = sum1 + sum2
End Sub
按预期工作:
PS:如果您希望结果也是动态的(例如,最后一个列表行下有2行),则将D16更改为ws.Range(Cells(ws.ListObjects("Table2").TotalsRowRange.Row + 2, "D")).Value2 = sum1 + sum2