Excel 使用VLOOKUP时删除不适用项

Excel 使用VLOOKUP时删除不适用项,excel,vba,excel-formula,Excel,Vba,Excel Formula,我尝试使用VLOOKUP公式将值从Sheet2带到Sheet1(在VBA中,在使用公式后,我复制粘贴以仅查看值)。但是当Sheet2中的单元格为空时,我会得到我不想要的“#N/A”。如果没有任何值,我该怎么做才能使单元格变空,比如用零替换#N/A 我尝试使用IFERROR公式,但得到的是0,而不是零 comm.Range(.Cells(2, "C"), .Cells(lr, "C")).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-2],Sheet2!C[-2]:C[2

我尝试使用VLOOKUP公式将值从Sheet2带到Sheet1(在VBA中,在使用公式后,我复制粘贴以仅查看值)。但是当Sheet2中的单元格为空时,我会得到我不想要的“#N/A”。如果没有任何值,我该怎么做才能使单元格变空,比如用零替换#N/A

我尝试使用IFERROR公式,但得到的是0,而不是零

comm.Range(.Cells(2, "C"), .Cells(lr, "C")).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-2],Sheet2!C[-2]:C[22],3,0),"""")"
  • 您可以使用=IFNA而不是=IFERROR,因为发生错误时的代码会生成#N/A错误
  • 最后,在要返回的列数之后的公式中(在第3列的情况下),使用number0,而不是TRUEFALSE
下面的代码不是答案,而是公式的示例

代码示例:

=IFNA(VLOOKUP(A2,$D$1:$E$2,2,FALSE),"") 'In excel

.FormulaR1C1 = "=VLOOKUP(RC[-1],R1C4:R2C5,2,FALSE)" 'In VBA

对我来说很好。如果单元格中有一个
0
,您将得到一个
0
,否则您将得到一个“空白值”。如果您直接在单元格中尝试该公式,会发生什么情况?@Zac if通过在单元格中直接使用它来工作,但我不能。客户端使用userform在VLOOKUP之后完成空数据,这就是我在VBA中使用它的原因,因为在我复制粘贴它以删除excel中的公式后,TRUE和FALSE分别被视为1和0。我一直使用1和0表示真假部分VLOOKUP/HLOOKUP,没有问题。