Как динамически заполнять ячейки - PullRequest
1 голос
/ 29 мая 2019

Я хотел бы динамически заполнить столбец. Однако, с кодом VBA, который у меня есть сейчас, формула заполняет весь путь до максимального числа строк (1,04 миллиона). Я бы хотел, чтобы он остановился на максимальном количестве строк, найденных в столбце слева (так же, как автоматическое заполнение вручную)

Sub Vlookup()

Range("C2").Select
ActiveCell.FormulaR1C1 = 
"=IFERROR(VLOOKUP(RC[-2],'C:\Test.xlsx'!R2C6:R1000C15,10,FALSE),"""")"
Selection.AutoFill Destination:=Range("C2", Range("C2").End(xlDown))

End Sub

Я пытался использовать

Selection.Autofill Destination := 
Range("C2",Selection.Range("C2").End(xldown))

Но это тоже не сработало

Ответы [ 2 ]

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

Вы всегда хотите использовать Long при поиске последней строки. Целые числа доходят только до 32 767, а количество строк превышает 1 миллион. Вам также следует избегать использования Select.

Dim lastRow as Long
lastRow=Cells(Rows.Count,2).End(xlup).Row

Range("C2").AutoFill Destination:=Range("C2:C" & lastRow)
0 голосов
/ 29 мая 2019

сначала вы можете получить последнюю строку из столбца B и использовать ее как ссылку для автозаполнения. см. мой пример ниже.

Dim lastRow As Integer
Range("B1").Select

Selection.End(xlDown).Select
lastRow = Selection.Row
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C" & lastRow)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...