Автор Тема: Excel VBA Макросы: Ошибка 1004 метод range... при использовании в макросе формулы.  (Прочитано 107 раз)

Оффлайн milahka

  • Посетитель форума
  • Сообщений: 2
Изучаю макросы, делаю подстановку значений по критерию из первого столбца. Пробую через ВПР. Выходит ошибка 1004.
Может и не очень правильно, если подскажите другое решение, буду благодарна.

Макрос вставляет на активный лист (активным листом должен быть лист 'Таблица'), в столбец L формулу.
Формула берёт табельный номер из листа 'Таблица', из столбца A и ищет этот табельный номер на листе 'Лист3', в столбце A. Если найден табельный номер, то на лист 'Таблица' вставляются данные из листа 'Лист3' из найденной строки из столбца 3. Если не найдено, то формула подставляет значение ПП.

Sub Формула()
Dim ILastRow As Long
ILastRow = Cells(Rows.Count, 1).End(xlUp).Row
   Range(L2 & ":L" & ILastRow).FormulaR1C1 = "=IF(ISNA(VLOOKUP(R2C[-11]:R487C[-11],Лист3!R1C[-11]:R73C[-9],2,0)),""ПП"",VLOOKUP(R2C[-11]:R487C[-11],Лист3!R1C[-11]:R73C[-9],3,0))"
   Range(L2 & ":L" & ILastRow).Value = Range(L2 & ":L" & ILastRow).Value 'вставляет значение
  End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 1574
L2 нужно заключить в кавычки:

Sub Формула()
    Dim lr As Long
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    Range("L2:L" & lr).FormulaR1C1 = _
        "=IF(ISNA(VLOOKUP(R2C[-11]:R487C[-11],Лист3!R1C[-11]:R73C[-9],2,0)),""ПП"",VLOOKUP(R2C[-11]:R487C[-11],Лист3!R1C[-11]:R73C[-9],3,0))"
    Range("L2:L" & lr).Value = Range("L2:L" & lr).Value 'вставляет значение
End Sub

Возможно вы бы увидели проблему, если бы у вас была включена опция 'Option Explicit': https://forumvba.ru/index.php?topic=402.0

Оффлайн milahka

  • Посетитель форума
  • Сообщений: 2
Спасибо вам большое за очень быстрый ответ!!!