Sub a()
Dim x As Integer
For x = 6 To 30
Cells(x, "e") = Application.Evaluate("sumproduct(g4:p4,g" & x & ":p" & x & ") * (c" & x & " +1)")
Next
End Sub
原因1
=SUMPRODUCT($G$4:$P$4,G6:P6)*(C:C+1)
每次循环时,蓝色部分并不像工作表函数(自动转换转换成该行C列的值)。
原因2
每次循环时,公式里的相对引用未起作用,也就是说相当于是固定引用。
解决办法:
将每次循环时,要改变的行数,用循环变量x替代。