2015-07-20 92 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