Excel 多准则XLOOKUP

Excel 多准则XLOOKUP,excel,vba,Excel,Vba,我试图将多标准XLookup公式转换为VBA,但我不断得到 错误13类型不匹配 使用单一标准的简单XLookup很好,所以这一定与我尝试连接需求的方式有关 Sub Test1() 'This works fine Range("F18").Value = Application.WorksheetFunction.XLookup(Range("F13").Value, Range("C:C"), Range("A:A")) 'This gives Error 13 T

我试图将多标准XLookup公式转换为VBA,但我不断得到

错误13类型不匹配

使用单一标准的简单XLookup很好,所以这一定与我尝试连接需求的方式有关

Sub Test1()

    'This works fine
    Range("F18").Value = Application.WorksheetFunction.XLookup(Range("F13").Value, Range("C:C"), Range("A:A"))

    'This gives Error 13 Type Mismatch
    Range("H18").Value = Application.WorksheetFunction.XLookup(Range("H11").Value & Range("H13").Value, Range("C:C") & Range("D:D"), Range("A:A"))

End Sub

本机公式
=XLOOKUP(H11&H13,C:C&D:D,A:A)
在Excel中运行良好,因此必须有一种在VBA中编写此公式的方法。

只是一个旁注,在查找或匹配中串联值很少是一个好主意。。。。如果将
US
A
连接起来,然后在连接
U
SA
的列中查找此值,则如何处理?在VBA中,您不能
Range(“C:C”)和Range(“D:D”)
。。。这是在尝试连接两个数组。继续@BigBen的评论-您希望结果是
范围(“C:D”)
范围(“C:C”)和范围(“D:D”)
中的
XLOOKUP
语句的一部分吗?函数中的@looksame-
&
在VBA中不会以同样的方式工作。您可以使用
评估
可能。@BigBen-这很有效,谢谢。我不熟悉Evaluate,但是
Range(“H18”).Value=Application.Evaluate(“=XLOOKUP(H11&H13,C:C&D:D,A:A)”)
做了我想做的事。只是一个旁注,在查找或匹配中串联值很少是个好主意。。。。如果将
US
A
连接起来,然后在连接
U
SA
的列中查找此值,则如何处理?在VBA中,您不能
Range(“C:C”)和Range(“D:D”)
。。。这是在尝试连接两个数组。继续@BigBen的评论-您希望结果是
范围(“C:D”)
范围(“C:C”)和范围(“D:D”)
中的
XLOOKUP
语句的一部分吗?函数中的@looksame-
&
在VBA中不会以同样的方式工作。您可以使用
评估
可能。@BigBen-这很有效,谢谢。我不熟悉Evaluate,但
Range(“H18”).Value=Application.Evaluate(“=XLOOKUP(H11&H13,C:C&D:D,A:A)”)
做了我想做的事。