所以我在下面有这个代码,但我想留下任何出现的单元格 "#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,我会得到一个运行时错误&#39 ; 1004':应用程序定义或对象定义的错误。
有关如何更新我的代码以将#NA&#39填充为空白单元格的任何想法?
答案 0 :(得分:3)
首先,通过将其更改为:
,可以大大简化这一过程Range("R2:R" & lastrow).FormulaR1C1 = _
"=IFERROR(INDEX(Detail!C[-17]:C[-17],MATCH(C[-16]&""D&O"",Detail!C[-14]:C[-14],0),1),"""")"
无需。选择然后.AutoFill到您的范围。此外,从您的问题的正文,看起来你没有双引双引号(4连续双引号)。
这对我来说很好。
答案 1 :(得分:0)
您也可以尝试:
ActiveCell.FormulaR1C1 = "=IFERROR(INDEX(Detail!C[-17]:C[-17],MATCH(C[-16]&""D&O"",Detail!C[-14]:C[-14],0),1),""Error"")"