Вы должны сделать строку из формулы. У тебя есть:
ActiveCell.Value = IfNa(D6, "Delete")
Но это должно быть:
ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"
Обратите внимание, что я добавил второй параметр IF в качестве пустой строки, но вы можете изменить это.
Примечание: вы можете использовать IFNA начиная с Excel 2011 вместо IF(ISNA(..),..) .
Изменить: на основе этого ответа вы можете расширить его на весь столбец:
Range("E1").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E1").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
Вы также можете установить фиксированный диапазон, например, E1:E6 , как указано здесь.
Редактировать 2: если вы хотите заполнить его для всего столбца, вы должны поместить формулу в строку 1 (например, E1) и выполнить автоматическое заполнение по всему столбцу (например, E:E). Если вы хотите меньше строк, вы должны указать это в пункте назначения автозаполнения, например:
Range("E2").Formula = "=IF(ISNA(D6),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E2:E10"), Type:=xlFillDefault
Таким образом, диапазон автозаполнения начинается с того же места, что и формула (E2 в этом примере).