在VBA

2016-05-30 67 views
0

設置字符串公式的哪些錯誤下面公式字符串:在VBA

L1是一個固定的日期和F2也與每個小區F2日期改變,F3,F4 ...... F15

Sub Button1_Click() 

Dim Data As Range 
Dim cell As Range 

Set currentsheet = ActiveWorkbook.Sheets("Comparison") 

Dim strFormulas(1 To 3) As Variant 

     ' Whats wrong here, L1 is fixed constant value and F2, F3,F4,F5,F6...F15 
     strFormulas(1) = "= Range("L1").Value - F2" 


     ThisWorkbook.Sheets("Comparison").Range("G2").Formula = strFormulas 
     ThisWorkbook.Sheets("Comparison").Range("G2:G15").FillDown 


End Sub 

回答

0

你實際上是試圖將以下公式寫入單元格中: = Range("L1").Value - F2 這不會起作用。我相信你可能會尋找這樣的事情:

strFormulas(1) = "=" & Range("L1").Value & " - F2" 
0

有時候,最簡單的方法找出一個公式是什麼樣子的代碼是它被寫入到工作表,然後看看代碼公式屬性。

下可能會做你想要什麼:

strFormulas(1) = "=$L$1-F2" 

你的沒有工作,因爲你是把文字「範圍(」 L1「)值。」到工作表中公式,而不是實際的L1的價值是我認爲你想要的。

編輯: 雖然你的問題只是關於你的公式字符串,你的方法應用到單元格也是不正確的。

由於您僅將它應用於單個單元格,因此應該只使用數組中的單個元素。 (它會按照你的方式工作,但效率不高)。換句話說,請在下面進行更改。

ThisWorkbook.Sheets("Comparison").Range("G2").Formula = strFormulas(1) 
+0

未給出所需的結果:( – user3051677

+0

@ user3051677不有用的信息,因爲您未示出的數據,結果,期望的結果或結果如何不同,也不怎麼施加的溶液。 –

+0

@ user3051677公式減去從'L1'中的值得到'Fn'中的值,這不是你想要的嗎? –