Как использовать функцию соответствия, чтобы сопоставить два значения из листа с другим листом и получить результат? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть два значения в листе "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 голосов
/ 25 марта 2019

Вы пропустили символ =:

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 вам нужно только строковое значение формулы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...