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

使用参考单元格使vba excel函数动态,vba,excel,excel-formula,Vba,Excel,Excel Formula,我已经写了一个代码,它创建了两个范围的sumproduct。。。。但我希望最终答案在计算sumproduct的参考范围改变时改变 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

我已经写了一个代码,它创建了两个范围的sumproduct。。。。但我希望最终答案在计算sumproduct的参考范围改变时改变

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行和第31列到第42列,但当我更改参考单元格时,答案不会更改
如何使我的最终结果与
的输入保持动态。公式
您需要添加一个公式,就像手动将其添加到Excel单元格中一样。公式(“=SumProduct(…)”),因此Excel会自动重新计算公式。要获取范围的地址并在公式中使用,请使用


不需要循环,只需填写第一个单元格的公式
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


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

使用
.Formula
您需要添加一个公式,就像手动将其添加到Excel单元格中一样,如
.Formula(“=SumProduct(…)”)
,因此Excel将自动重新计算公式。要获取某个范围的地址并在公式中使用它,请使用。我们如何使用这种表示循环。。请帮我填写
p=1
的公式,例如
单元格(LastRow+2,32)。公式=“…”
然后将该单元格直接复制到其他单元格是一种简单的方法,因此不需要循环:
单元格(LastRow+2,32)。自动填充目标:=范围(单元格(LastRow+2,32),单元格(LastRow+2,43))
感谢您投入宝贵的时间
ActiveSheet.Cells(LastRow + 2, 32).AutoFill Destination:=Range(Cells(LastRow + 2, 32), Cells(LastRow + 2, 43))