копирование формулы в нижнюю часть активного диапазона, если диапазон состоит только из одной строки

#excel #vba #copy-paste

#excel #vba #копировать-вставить

Вопрос:

Я использую следующий код для копирования данных из ячейки в нижнюю часть активного диапазона после того, как я поместил формулу или Vlookup в первую ячейку.

 Range("G2").Select
 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Order,108,FALSE)"
 Range("G2").Select
 LR = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
    Range("G2").AutoFill Range("G2:G" amp; LR)
 

Этот код работает нормально, пока у меня не будет только одной строки в активном диапазоне, после чего я получаю сообщение об ошибке для отладки

Ошибка времени выполнения ‘1004’: ошибка автозаполнения метода класса диапазона

Что мне нужно добавить, если последняя строка является первой строкой?

Есть предложения?

Я использую эту строку кода для копирования в активный раздел несколько раз на одной вкладке.

Заранее спасибо за помощь.

Комментарии:

1. If LR > 2 Then ?

Ответ №1:

В If этом случае может быть очень полезно.

Попробуйте что-то вроде:

  Range("G2").Select
 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Order,108,FALSE)"
 Range("G2").Select
 LR = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
 If LR <> 2 Then Range("G2").AutoFill Range("G2:G" amp; LR)