Excel VBA:多标准匹配 – 评估函数

我曾多次尝试在VBA中正确使用评估函数,但是我还没有成功。 我想要在数据表上运行多个标准匹配。 我在这里提供了一个样本数据表来进行testing。 我无法得到函数Evaluate(evalStr)传递一个匹配行。 我反复收到一条错误消息。 我在下面提供了一组样本代码,期望的结果是第7行,其中item1 =“Orange”和item2 =“Feb”。 你能帮忙找出问题吗?

在这里输入图像说明

 Sub testEval() Dim dataTable As ListObject Dim evalStr As Variant Dim item1 As String Dim item2 As String Dim ws As Worksheet item1 = "Orange" item2 = "Feb" Set ws = ActiveSheet Set dataTable = ws.ListObjects(1) With ws 'V1 evalStr = .Evaluate("MATCH(" & item1 & "&" & item2 & "," & .Columns(1).Address & "&" & .Columns(2).Address & "),0)") 'V2? 'evalStr = .Evaluate("MATCH(" & item1 & "&" & item2 & "," & Application.WorksheetFunction.Substitute(.Columns(1).Address & "&" & .Columns(2).Address, "$", "") & "),0)" 'With dataTable.DataBodyRange ''V3? 'evalStr = ws.Evaluate("MATCH(" & item1 & "&" & item2 & "," & .Columns(1).Address & "&" & .Columns(2).Address & "),0)") ''V4? 'evalStr = ws.Evaluate("MATCH(" & item1 & "&" & item2 & "," & Application.WorksheetFunction.Substitute(.Columns(1).Address & "&" & .Columns(2).Address, "$", "") & "),0)") 'End With End With End Sub 

evalStr应该是:

 evalStr = .Evaluate("=MATCH(""" & item1 & """&""" & item2 & """," & .Columns(1).Address & "&" & .Columns(2).Address & ",0)") 

=从公式中丢失, item1item2应该用双引号括起来,因此我添加了"" ,还有额外的)之前,0