如何使用匹配功能将一个工作表中的两个值与另一个工作表进行匹配并获得结果?

时间:2019-03-25 08:18:51

标签: excel vba

我在工作表“ SheetA”中有两个值

SheetA:

Column A      Column B
Apple         10.5

我希望这两个值与工作表“ SheetB”匹配,并从列C“完成”获得答案

SheetB:

Column A   Column B   Column C
Apple      10         Undone
Apple      10.5       Done

使用我尝试过的匹配功能

mav = Evaluate("INDEX(SheetB!$C$1:$C$5,MATCH(A1 & B1,SheetB!$A$1:$A$5&SheetB!$B$1:$B$5,0))")

Msgbox mav

我收到:

  

错误2042

请帮助我。这是一个例子。得到解决方案后,我想在代码中使用此公式。预先感谢。

当我用下面的相同表格引用这些值时,它正在工作。

mav = Evaluate("INDEX($C$1:$C$5,MATCH(A1 & B1,$A$1:$A$5&$B$1:$B$5,0))")

当我将其引用到其他工作表时,它不起作用。

mav = Evaluate("INDEX(SheetB!$C$1:$C$5,MATCH(A1 & B1,SheetB!$A$1:$A$5&SheetB!$B$1:$B$5,0))")

1 个答案:

答案 0 :(得分:0)

您错过了=字符:

mav = Evaluate("=INDEX(SheetB!$C$1:$C$5,MATCH(A1 & B1,SheetB!$A$1:$A$5&SheetB!$B$1:$B$5,0))")

除了该错误2042之外,其他值都等于#N/A,因此您可能引用了错误的工作表。使用正确的引用,代码可以正常工作,请参见下文:

enter image description here

enter image description here

enter image description here

还有什么要注意的;这实际上是一个数组公式,但是在VBA中,您只需要公式的字符串值即可:)