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)")
=
从公式中丢失, item1
和item2
应该用双引号括起来,因此我添加了""
,还有额外的)
之前,0