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



在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

您可以将TEXT函数用作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(,))"

cco请参阅如何在Excel公式中创建包含双引号的字符串获取更多示例

最新更新