eu tenho o seguinte código:
Sub TestNA2()
IsThisNA = Sheets("sheet1").Range("D:D").Select
'Sheets("sheet1").Range("E:E").Select
Range("E2").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
'ActiveCell.Value = "=IF(ISNA(D:D), ""Delete"","""")"
'ActiveCell.Value = IsThisNA
'MsgBox IsNA
End Sub
mas ocorre um erro nesta linha: ActiveCell.Value = IfNa(D6, "Delete")
o que eu quero que aconteça é colocar a palavra “delete” na célula E6 se D6 for #NA.
alguém pode me ajudar com esse código?
Responder1
O erro está nesta linha:
ActiveCell.Value = IfNa(D6, "Delete")
Use em vez disso:
Set IsThisNA = Sheets("items-1").Range("D6")
If Application.WorksheetFunction.IsNA(IsThisNA.Value) Then
ActiveCell.Value = "Delete"
End If
ou, mais sucintamente:
If Application.WorksheetFunction.IsNA(Sheets("items-1").Range("D6").Value) Then
ActiveCell.Value = "Delete"
End If
Responder2
Você deve fazer uma string com a fórmula. Você tem:
ActiveCell.Value = IfNa(D6, "Delete")
Mas isso deveria ser:
ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"
Observe que adicionei o segundo parâmetro para IF
ser a string vazia, mas você pode querer alterar isso.
Nota: você pode usarIFNA
desde o Excel 2011 em vez de IF(ISNA(..),..)
.
Editar:baseado emesta respostavocê pode estendê-lo 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 emaqui.
Editar 2:se quiser preencher a coluna inteira, você deve colocar a fórmula na linha 1 (por exemplo E1
), e fazer o preenchimento automático em toda a coluna (por exemplo E:E
). Se você quiser menos linhas você 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 começa no mesmo local da fórmula ( E2
neste exemplo).