使用Excel VBA进行多条件Xlookup

yrwegjxp  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(688)

在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

但是,如前所述,使用&只是将两个字符串组合在一起形成一个字符串,而不是告诉它需要查找两个不同的东西。

vlju58qv

vlju58qv1#

不幸的是,我没有访问它XLOOKUP在我的Excel版本,所以我不能测试.但我认为问题是你使用引号(")围绕您的搜索范围.
你说:“使用“&”将两个字符串组合在一起”。这正是正在发生的事情,只是你组合的是字符串OFthe addresses,而不是字符串ATthose addresses。
尝试以下操作(您需要调整搜索范围和条件以适应):

WorksheetFunction.Xlookup("ThingToLookFor" & "OtherThingToLookFor", A1:A3&B1:B3, C1:C3)

如果“ThingToLookFor”和“OtherThingToLookFor”也是单元格引用,请记住也从这些单元格中删除"

相关问题