将公式插入单元格VBA Excel时的运行时错误1004

时间:2016-04-17 13:16:57

标签: string excel vba excel-vba excel-formula

尝试将公式插入VBA中的单元格时,我收到运行时错误1004。

在我的Excel工作表中,我在A列中有一个日期,在第1行有一个股票代码,每3列从B列开始,所以B,E,H等。

在单元格C2中,我试图将B2中的值除以列标题" FTSE"下的第2行中的值。将此公式直接放入单元格中可以起作用:

=IFERROR(B2/(VLOOKUP($A2,$A$2:$GMQ$261,MATCH("FTSE",$B$1:$GMQ$1,0)+1,FALSE)),"")

我正在尝试使用vba执行此操作。这是我的代码:

Sub InsertFormula()

   Range("C2").Select
   ActiveCell.Formula = _
   "=IFERROR(B2/(VLOOKUP($A2,$A$2:$GMQ$261,MATCH(""FTSE"",$B$1:$GMQ$1,0)+1,FALSE)),"")"

End Sub

1 个答案:

答案 0 :(得分:3)

您可以减少使用TEXT function作为TEXT(,)的双倍双引号产生的混淆。这会返回零长度字符串,就像""一样,并且没有引号可以像""""一样加倍。

Range("C2").Formula = _
 "=IFERROR(B2/(VLOOKUP($A2, $A$2:$GMQ$261, MATCH(""FTSE"", $B$1:$GMQ$1 ,0)+1, FALSE)), TEXT(,))"
'without the offset and subsequent adjustment with full column references
Range("C2").Formula = _
 "=IFERROR(B2/VLOOKUP($A2, $A:$GMQ, MATCH(""FTSE"", $1:$1 ,0), FALSE), TEXT(,))"

¹有关更多示例,请参阅 How to create strings containing double quotes in Excel formulas?