Как прошить заполнить формулу в Excel, используя формулу - PullRequest
0 голосов
/ 24 мая 2019

Я самоучка в VBA и не смогла расшифровать другие ответы на этот вопрос.У меня есть формула в J6, которую я хочу заполнить до конца данных.

У меня есть следующий код:

Range("j6").Select
ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-9],R5C14:R6C15,2,FALSE),2)"
Range("J6").Select
Range("J6").AutoFill Destination:=Range("J6:J" & Cells(Rows.Count, "I").End(xlDown).Row)

Я думал, что это будет считать строки в столбце Iс данными, а затем заполнить так далеко, но он заполнен до отказа.

Range("j6").Select
ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-9],R5C14:R6C15,2,FALSE),2)"
Range("J6").Select
Range("J6").AutoFill Destination:=Range("J6:J" & Cells(Rows.Count, "I").End(xlDown).Row)

Я бы хотел, чтобы формула мгновенно заполнялась до конца набора данных.

1 Ответ

0 голосов
/ 24 мая 2019

Исправление одной строки Скотта Крэйнера в комментарии выше работает.Код, который я публикую ниже, не является решением на одну строку, скорее он отделяет «применение формулы» от определения / нахождения нижней строки столбца J.

Sub Formuala()

Dim LastRow As Long

'code below finds that last cell in Column J so the formula can be applied from J6 down
'to this "LastRow" which can be different each time the macro is run

LastRow = Worksheets("Sheet1").Range("J" & Rows.Count).End(xlUp).Row

'Code below place the formula on the sheet for the J6 to J"LastRow" range
Worksheets("Sheet1").Range("J6:J" & LastRow).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-9],R5C14:R6C15,2,FALSE),2"

End Sub

Обязательно изменитеSheet1 в моем коде, независимо от того, как называется ваш рабочий лист.

Удачи и добро пожаловать на сайт!

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