VBA Vlookup с функцией соответствия - PullRequest
0 голосов
/ 07 марта 2019

Я создал сводную таблицу, используя код VBA, и назвал ее Pivot1.Все, что я ищу, - это установить динамический код VBA Vlookup, поскольку заголовки строк в сводной области могут постоянно изменяться.Я использовал формулу функции соответствия, и я могу получить результат, когда применяю это к ячейке, но не могу написать код VBA, используя это.

=IFERROR(VLOOKUP($D18,Pivot1!$A$4:$D$27,MATCH(E$17,Pivot1!$A$4:$E$4,0),0),0)

Пожалуйста, помогите мне добавить эту функцию вэтот код VBA -

Range("E18").Activate

ActiveCell.Value = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -1), Sheets("Pivot1").Range("A1:E50"), 2, 0)

ActiveCell.Offset(1).Select

1 Ответ

2 голосов
/ 07 марта 2019

Если вы застряли с помощью Application.Match (), хотя GetPivotData из предложенного Мэтом Кружка показалось бы более уместным, тогда вы бы добавили это аналогично вашему Application.VLookUp () ... я бы порекомендовал использовать оператор with, так что вам не нужно повторять одно и то же:

With Sheets("Pivot1") 
    ActiveCell.Value = Application.VLookup(ActiveCell.Offset(0, -1).Value, .Range("A4:D27"), Application.Match(ActiveCell.Offset(-1,0).Value, .Range("A4:E4"),0), 0)
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...