Concat multiple MATCH criteria in Excel VBA

前端 未结 3 756
挽巷
挽巷 2020-12-18 15:06

So in Excel, we know it\'s possible to test against multiple criteria via concatenation, like this:

MATCH(criteria1&criteria2, Range(), 0)
3条回答
  •  甜味超标
    2020-12-18 15:37

    Doesn't readily map to a VBA implementation, but you can cheat a bit using Evaluate:

    Sub Tester()
    
        Dim v1, v2, f
    
        v1 = "y"
        v2 = 11
    
        Sheet1.Names.Add Name:="X", RefersTo:=v1
        Sheet1.Names.Add Name:="Y", RefersTo:=v2
    
        f = "MATCH(X&Y,$A$2:$A$5&$B$2:$B$5, 0)"
    
        Debug.Print Sheet1.Evaluate(f)
    
    End Sub
    

    or skipping the names:

    Sub Tester2()
    
        Const F_TEMPL As String = "MATCH(""{V1}""&""{V2}"",$A$2:$A$5&$B$2:$B$5, 0)"
        Dim v1, v2, f
    
        f = Replace(F_TEMPL, "{V1}", "x")
        f = Replace(f, "{V2}", 12)
    
        Debug.Print Sheet1.Evaluate(f)
    
    End Sub
    

提交回复
热议问题