运行时错误'13'types错过匹配

我试图运行一个macros将自动插入公式

=IFERROR(IF('307'!A2=0,"-",'307'!A2),"-") 

当我用下面的代码设置VBA代码时,它不起作用。 我只是得到types不匹配的错误。

 Range("B2:B33").Formula = "=IFERROR(IF('307'!A2=0," - ",'307'!A2)," - ")" 

基本上我想要发生的是要插入的公式,然后下一个公式将具有“A3”下一个“A4”等等。 有一个简单的方法来实现这一点?

提前致谢。

如果你想要显示引号,那么你需要在vba中加倍:

 "=IFERROR(IF('307'!A2=0,"" - "",'307'!A2),"" - "")" 

正如斯科特·克莱纳(Scott Craner)所指出的那样:为了避免引用“你需要把它们加倍”。

这是一个简单的诀窍来加倍你所有的报价。

在这里输入图像说明

?取代(范围(“A1”)。公式,Chr(34),Chr(34)和Chr(34))

= IFERROR(IF( '307' A2 = 0, “!” – “”, '307' A2), “!” – “”)