IFERROR或跳过#NA在VBA中

所以我有下面的代码,但我想离开任何细胞,
“#N / A”作为空白值。

Range("R2").Select ActiveCell.FormulaR1C1 = _ "=INDEX(Detail!C[-17]:C[-17],MATCH(C[-16]&""D&O"",Detail!C[-14]:C[-14],0),1)" Range("R2").AutoFill Destination:=Range("R2:R" & lastrow) 

我知道我可以通过使用= IFERROR(INDEX(详细!A:A,MATCH(B:B&“D&O”,Detail!D:D,0),1),“” ),但我希望它通过VBA自动填充整个列,如果我在VBA中使用IFERROR,我得到一个运行时错误“1004”:应用程序定义或对象定义的错误。

任何想法如何我可以更新我的代码来填充#NA作为空白单元格?

首先,可以通过将其改为:

 Range("R2:R" & lastrow).FormulaR1C1 = _ "=IFERROR(INDEX(Detail!C[-17]:C[-17],MATCH(C[-16]&""D&O"",Detail!C[-14]:C[-14],0),1),"""")" 

不需要。select,然后.AutoFill到您的范围。 另外,从你的问题的主体看来,你没有双引号(连续4个双引号)。

这对我来说工作得很好。

你也可以尝试:

 ActiveCell.FormulaR1C1 = "=IFERROR(INDEX(Detail!C[-17]:C[-17],MATCH(C[-16]&""D&O"",Detail!C[-14]:C[-14],0),1),""Error"")"