2017-10-09 37 views
-1

我已经创建了一个包含vlookups的宏,该宏很棒。然而,现在我需要在列J的公式中添加一个不同类型的vlookup。如果最初的vlookup不存在,我希望它查找不同的值。最初VLOOKUP是如果缺少初始值,则查找替代值

With Range("J2:J" & LastRow) 
.Formula = "=IF(ISERROR(VLOOKUP(A2&""B2"",MARM!A:G,7,0)),"""",IF(VLOOKUP(A2&""B2"",MARM!A:G,7,0)=0,"""",VLOOKUP(A2&""B2"",MARM!A:G,7,0)))" 
.Value = .Value 
End With 

我想提供替代

VLOOKUP
VLOOKUP(A2&""P2"",MARM!A:G,7,0) 

所以,如果用B2结局VLOOKUP不存在,然后用P2结束VLOOKUP。

回答

2

您的意思是说如果基于B2的VLOOKUP返回错误,您想使用替代查找吗?

如果是这样,那么您的公式已经测试了基于B2的VLOOKUP是否返回错误并将结果作为空字符串。

所以只要你的替代VLOOKUP更换nullstring """""

IFERROR(VLOOKUP(A2&""P2"",MARM!A:G,7,0),"""") 
+0

非常感谢您的回答..这两个“”“”我应该更换? –

+0

第一个....它是IF函数的IF TRUE部分中的一个,用于测试B2 VLOOKUP是否返回错误。首先更新电子表格中的公式比较容易,以确保您了解它并在更新VBA之前检查它是否正常工作。 – Michael

+0

您提出的解决方案可以正常工作,但如果出现错误,不能告诉它将单元格留空。因为像这样,如果第二次查找也是错误的,那么单元格会显示N/A或0.因此,如果公式类型提供了用空单元替换错误单元格的机会。你认为这是可能的? –