Excel如何通过VBA引用另一工作表动态变化的自动求和单元格值
解决方法
以下提供两种可行方案,可根据你的使用场景选择:
方案1:修改现有VBA代码,求和同步写入目标工作表
直接调整你现有代码,明确指定工作表避免激活表漂移问题,同时加一行代码把求和结果同步到其他工作表即可,示例代码如下:
Dim lastrow1 As Long ' 明确指定操作A工作表,避免激活表错误 With Worksheets("A") lastrow1 = .Cells(.Rows.Count, "J").End(xlUp).Row + 1 .Cells(lastrow1, "J").Value = "=Sum(J2:J" & lastrow1 - 1 & ")" ' 下方代码将求和结果同步到其他工作表,可自行修改表名和目标单元格 Worksheets("你要展示结果的工作表名").Range("你要放结果的单元格位置,比如A1") = .Cells(lastrow1, "J").Value End With
如果需要目标单元格保留和A表求和的联动关系,也可以直接给目标单元格写入引用公式:
Worksheets("你要展示结果的工作表名").Range("目标单元格位置").Formula = "='A'!J" & lastrow1
方案2:不改VBA,用Excel公式直接获取动态求和结果
如果不想修改现有代码,可以直接在要展示结果的工作表的目标单元格输入以下公式,会自动抓取A表J列最后一个数值(也就是你动态插入的求和结果):=LOOKUP(9E+307,A!J:J)
注:如果A表J列求和单元格下方还有其他数值内容,该公式会取到最底部的数值,这种场景优先使用方案1更稳妥。
内容的提问来源于stack exchange,提问作者user17543600
相关产品推荐
相关产品推荐

