Вы должны сделать строку из формулы. У тебя есть:
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
в этом примере).