使用VBA将公式分配给单元格?

时间:2015-01-10 07:55:22

标签: excel excel-vba vba

VBA为此代码提供了错误1004

Sub UpdateCellsFormula()
Dim FormulaRange As Range
Dim i As Integer

Set FormulaCellsRange = Range("J17", "J95")
i = 17

For Each r In FormulaCellsRange.Cells
    r.Formula = Replace("=D17*L21+E17*M21+F17*O21+G17*N21+H17*P21+I17*Q21)/(1+0,85+0,6+0,4+0,37)", "17", i)
    i = i + 1
Next
End Sub

任何人都可以看一下吗?

1 个答案:

答案 0 :(得分:2)

使用.Formula分配的公式必须位于En-US区域设置中。因此,数字中的小数点必须为.,而不是,1+0.85+0.6+0.4+0.37)。

此外,您在=之后开始缺少左括号。

您可能还想了解Excel中的绝对引用。这样,您可以将相同的公式复制到FormulaCellsRange中的所有单元格中,而无需替换任何内容:

Sub UpdateCellsFormula()
  ActiveSheet.Range("J17", "J95").Formula = "=(D17*$L$21+E17*$M$21+F17*$O$21+G17*$N$21+H17*$P$21+I17*$Q$21)/(1+0.85+0.6+0.4+0.37)"
End Sub