运行时错误' 13'类型未命中

时间:2016-12-09 00:02:08

标签: excel vba macros

我正在尝试运行一个会自动插入公式的宏

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

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您希望显示引号,则需要在vba中将它们加倍:

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

答案 1 :(得分:0)

斯科特克拉纳指出:为了逃避引用“你需要加倍”。

这是一个简单的技巧,可以将所有引号加倍。

enter image description here

  

?替换(范围(“A1”)。公式,Chr(34),Chr(34)& Chr(34))

     

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