Изучаю макросы, делаю подстановку значений по критерию из первого столбца. Пробую через ВПР. Выходит ошибка 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
[вложение удалено администратором]
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
Спасибо вам большое за очень быстрый ответ!!!