尝试将公式插入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 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?。