Как написать vlookup в VBA на листе, который содержит 5000 строк данных? - PullRequest
0 голосов
/ 30 мая 2019
Sub test
    Dim z As Long
    z = Range("A" & Rows.Count).End(xlUp).Row
    Range("C4").Formula ="=Vlookup(A4, '[EMP.txt]EMP'!$A$2:$C2,3,False)"
    Range("C4").Copy
    Range("C4:C" & z).pastspecial xlPasteAll
End sub

Моя формула работает в моем коде, но она пропускает пару строк, поэтому мои итоги не совпадают. Если я изменю формулу vlookup на =Vlookup(A4,’[EMP.txt]EMP’!$A$2:$C176,3,False), она будет перебирать все, но диапазон будет меняться от недели к неделе. Как мне это исправить?

1 Ответ

1 голос
/ 30 мая 2019

Поскольку в вашем коде у вас уже есть переменная с именем z, в которой вы храните строку последней непустой ячейки в столбце A, вы можете использовать этот же номер строки для обновления вашего диапазона в Vlookup

Так замените строку:

Range("C4").Formula ="=Vlookup(A4, '[EMP.txt]EMP'!$A$2:$C2,3,False)"

С

Range("C4").Formula ="=Vlookup(A4, '[EMP.txt]EMP'!$A$2:$C" & z & ",3,False)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...