2015-07-20 146 views
0

我基本上是试图以编程公式添加到Excel工作表的某些单元格,使用下面的代码:添加公式单元格VBA

'Ajout des formules de calcul de TD LABO 
For i = 20 To 22 
    'Formule : TD=(2/3)*C2H6+C3H8+(4/3)*(i-C4H10+n-C4H10) 
    newWorkBook.Worksheets("Feuil1").Cells(i, 16).Formula = (2/3) * Cells(i, 11) + Cells(i, 14) + (4/3) * (Cells(i, 6) + Cells(i, 7)) 
    'Calcul avec une décimale 
    newWorkBook.Worksheets("Feuil1").Cells(i, 16).NumberFormat = "0.0" 
Next i 

的问题是,该单元格的值是我加当我更改公式'演算中使用的单元格的值时,公式不会更改。

+0

样,如果你用的什么'FormulaLocal'? – 0m3r

+0

我得到了相同的结果 – otus

回答

2

您并未添加公式,而是计算一个值并将其放入单元格中。您需要使用:

For i = 20 To 22 
    'Formule : TD=(2/3)*C2H6+C3H8+(4/3)*(i-C4H10+n-C4H10) 
    newWorkBook.Worksheets("Feuil1").Cells(i, 16).FormulaR1C1 = "=(2/3)*RC11 +RC14+(4/3)*(RC6+RC7)" 
    'Calcul avec une décimale 
    newWorkBook.Worksheets("Feuil1").Cells(i, 16).NumberFormat = "0.0" 
Next i 

或不循环:

'Formule : TD=(2/3)*C2H6+C3H8+(4/3)*(i-C4H10+n-C4H10) 
With newWorkBook.Worksheets("Feuil1").Cells(22, 16).Resize(2) 
    .FormulaR1C1 = "=(2/3)*RC11 +RC14+(4/3)*(RC6+RC7)" 
    'Calcul avec une décimale 
    .NumberFormat = "0.0" 
End With 
+0

我以为你需要引号,但是我再也记不起它是否适用于所有VBA版本。我还认为,输入公式时,VBA不会自动计算表格,除非您明确告诉它这样做, – AMR

1

试试这个,

Sub fmula() 
     For i = 20 To 22 
      Range("P" & i).Formula = "= (2/3)*(K" & i & ")+(4/3)*((F" & i & ")+(G" & i & "))" 
     Next 
    End Sub