2015-01-10 3 views
-2

VBA давал мне ошибку 1004 для этого кода:Назначить формулу ячейке с помощью VBA?

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 

Может кто-нибудь взглянуть на него?

+0

Должен ли я их суммировать? –

ответ

2

Формулы, назначенные .Formula, должны быть в локализации в США. Следовательно, десятичная точка в цифрах должна быть ., а не , (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 
Смежные вопросы