Você deve criar uma string fora da fórmula. Você tem:
ActiveCell.Value = IfNa(D6, "Delete")
Mas isso deve ser:
ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"
Note que eu adicionei o segundo parâmetro de IF
para ser a string vazia, mas você pode querer mudar isso.
Observação: você pode usar IFNA
desde o Excel 2011 em vez de IF(ISNA(..),..)
.
Editar: com base em esta resposta , você pode estendê-la para toda a coluna:
Range("E1").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E1").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
Você também pode colocar um intervalo fixo, por exemplo, E1:E6
, conforme indicado em aqui .
Editar 2: se você quiser preenchê-lo para a coluna inteira, coloque a fórmula na linha 1 (por exemplo, E1
) e preencha automaticamente a coluna inteira (por exemplo, %código%). Se você quiser menos linhas, deve indicar isso no destino de preenchimento automático, por exemplo:
Range("E2").Formula = "=IF(ISNA(D6),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E2:E10"), Type:=xlFillDefault
Portanto, o intervalo de preenchimento automático está iniciando no mesmo local da fórmula ( E:E
neste exemplo).