Используйте vlookup для неопределенного количества столбцов - PullRequest
0 голосов
/ 21 ноября 2019

у меня есть этот код, чтобы использовать vlookup для грубых 600 столбцов, код работает, когда я использовал

wslookup.range("D2:D600").Formula = "=VLOOKUP(C2,'PM FLEET'!$A$1:$D$603,4,FALSE)

, но не работает, когда я пытаюсь использовать xldown - я постоянно получаю

ошибка 1004

Есть ли другие способы, которые я могу использовать, чтобы использовать vlookup до последней записи Спасибо заранее!

Set wslookup = Workbooks("bdncasemacro.xlsm").Worksheets("Working")
wslookup.Range(Range("D2"), Range("D2").End(xlDown)).Formula = "=VLOOKUP(C2,'PM FLEET'!$A$1:$D$603,4,FALSE)"

Ответы [ 2 ]

0 голосов
/ 21 ноября 2019

Вы не указываете откуда ваш Range("D2")

With wslookup
    .Range(.Range("D2"), .Range("D2").End(xlDown)).Formula = "=VLOOKUP(C2,'PM FLEET'!$A$1:$D$603,4,FALSE)"
End With
0 голосов
/ 21 ноября 2019

Если ваш столбец D на листе «Working» не заполнен, вы будете заполнять формулу до последней строки, которая является строкой 1 048 576. Предложите захватить последнюю требуемую строку из листа "PM fleet", т.е. finalrow = Workbooks ("bdncasemacro.xlsm"). Sheets ("PM FLEET"). Range ("D2"). End (xlDown) .Row

И используйте finalrow в качестве конечного диапазона в вашем «рабочем» листе

...