在Excel中,使用Xlookup
功能时可以有多个条件。
一个"普通的" Xlookup
看起来像这样:
=xlookup("ThingToLookFor", "Search Range", "Return Range")
多条件Xlookup
看起来像这样:
=xlookup("ThingToLookFor" & "OtherThingToLookFor", "Search Range 1" & "Search Range 2", "Return Range")
我尝试在VBA中做一个多条件Xlookup。使用&
将两个字符串组合在一起,所以这是不好的。
VBA中的正确版本是什么?
WorksheetFunction.Xlookup("ThingToLookFor" & OtherThingToLookFor", "Search Range 1" & "Search Range 2", "Return Range")?
- 注:我发现了"评估"。我可以让它工作,但我不确定我是否喜欢它。*
更具体的例子:
Sub xlookup_test()
Dim Lookup_Value_1 As String
Lookup_Value_1 = "My Document"
Dim Lookup_Value_2 As String
Lookup_Value_2 = "Sales"
Dim Search_List_1 As Range
Set Search_List_1 = Document_Control.Range("DC_Document_Type")
Dim Search_List_2 As Range
Set Search_List_2 = Document_Control.Range("DC_Document_Name")
Dim Return_List As Range
Set Return_List = Document_Control.Range("DC_Document_ID")
Dim Return_Value As String
' this is the problem line
Return_Value = WorksheetFunction.XLookup(Lookup_Value_1 & Lookup_Value_2, Search_List_1 & Search_List_2, Return_List)
Debug.Print (Return_Value)
End Sub
但是,如前所述,使用&
只是将两个字符串组合在一起形成一个字符串,而不是告诉它需要查找两个不同的东西。
1条答案
按热度按时间vlju58qv1#
不幸的是,我没有访问它
XLOOKUP
在我的Excel版本,所以我不能测试.但我认为问题是你使用引号("
)围绕您的搜索范围.你说:“使用“&”将两个字符串组合在一起”。这正是正在发生的事情,只是你组合的是字符串OFthe addresses,而不是字符串ATthose addresses。
尝试以下操作(您需要调整搜索范围和条件以适应):
如果“ThingToLookFor”和“OtherThingToLookFor”也是单元格引用,请记住也从这些单元格中删除
"
。