在VBA

2016-05-30 66 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'中的值,这不是你想要的吗? –