在VBA中输入错误或跳过NA

在VBA中输入错误或跳过NA,vba,excel,Vba,Excel,所以我有下面的代码,但我想留下任何出现的单元格 不适用,作为空白值 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) 我知道,当我直接在单元格中键入时,

所以我有下面的代码,但我想留下任何出现的单元格 不适用,作为空白值

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)
我知道,当我直接在单元格中键入时,我可以通过使用=IFERRORINDEXDetail来解决这个问题!A:A,比赛B:B&D&O,细节!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),"""")"
无需。选择,然后。自动填充到您的范围。另外,从你的问题的主体来看,看起来你没有双引号,你的双引号是4个连续的双引号


这对我来说很好。

首先,将其更改为:

Range("R2:R" & lastrow).FormulaR1C1 = _ 
"=IFERROR(INDEX(Detail!C[-17]:C[-17],MATCH(C[-16]&""D&O"",Detail!C[-14]:C[-14],0),1),"""")"
无需。选择,然后。自动填充到您的范围。另外,从你的问题的主体来看,看起来你没有双引号,你的双引号是4个连续的双引号

这对我来说效果很好。

您也可以尝试:

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

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

在VBA中,您是否正确地使用引号=请看详细信息!C[-17]:C[-17],匹配C[-16]和D&O,细节!C[-14]:C[-14],0,1,另外,请确保当前工作簿中有一个名为“详细信息”的工作表。我刚刚复制并粘贴了您放置的内容,但仍然出现相同的错误。我在当前工作簿中有详细工作表。所以所有的单元格我都应该得到值,我得到了,但是我想去掉其他单元格中的N/A,当我知道我不应该得到任何值时,将其留空。这是一个数组公式吗?在VBA中,你正确地做了引号吗=请看详细信息!C[-17]:C[-17],匹配C[-16]和D&O,细节!C[-14]:C[-14],0,1,另外,请确保当前工作簿中有一个名为“详细信息”的工作表。我刚刚复制并粘贴了您放置的内容,但仍然出现相同的错误。我在当前工作簿中有详细工作表。所以所有的单元格我都应该得到值,我得到了,但是我想去掉其他单元格中的N/A,当我知道我不应该得到任何值时,把它留空。这是一个数组公式吗?呃,是的。我讨厌我忽略了这样的小事。非常感谢你!问题解决了。我很高兴这对你有用!非常感谢用户接受对他们有用的答案,详情请参阅。啊,是的。我讨厌我忽略了这样的小事。非常感谢你!问题解决了。我很高兴这对你有用!非常感谢用户接受适合他们的答案,有关详细信息,请参阅。