使用参考单元格使 vba Excel 函数动态化



我写了一个代码,它创建了两个范围的求和......但是我希望当计算总和积的参考范围发生变化时,最终答案会发生变化

p = 1
For p = 1 To 12
ActiveSheet.Cells(LastRow + 2, 31 + p).Formula = WorksheetFunction.SumProduct(Range(Cells(3, 31 + p), Cells(LastRow, 31 + p)), Range(Cells(3, 6 + p), Cells(LastRow, 6 + p)))
Next p

例如,在上表中,sumproduct 结果显示在最后一行 + 2 第 3 行和第 31 列到 42 列中,但是当我更改参考单元格时,答案不会改变 如何使我的最终结果与输入动态

使用.Formula,您需要添加一个公式,就像像.Formula("=SumProduct(…)")一样手动将其添加到Excel单元格中,以便Excel自动重新计算公式。若要获取区域的地址并在公式中使用它,请使用 Range.Address 方法。


而不是循环,只需填写第一个单元格的公式p = 1

ActiveSheet.Cells(LastRow + 2, 32).Formula = "=SumProduct(" & Range(Cells(3, 32), Cells(LastRow, 32)).Address(False, False) & ", " & Range(Cells(3, 7), Cells(LastRow, 7)).Address(False, False) & ")"

然后自动将该单元格直接填充到其他单元格中(最多p = 12个)

ActiveSheet.Cells(LastRow + 2, 32).AutoFill Destination:=Range(Cells(LastRow + 2, 32), Cells(LastRow + 2, 43))

之后,如果您更改任何值,总和乘积将自动重新计算。

最新更新