tengo el siguiente 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
pero aparece un error en esta línea: ActiveCell.Value = IfNa(D6, "Delete")
Lo que quiero que suceda es poner la palabra "eliminar" en la celda E6 si D6 es #NA.
¿Alguien puede ayudarme con este código?
Respuesta1
El error está en esta fila:
ActiveCell.Value = IfNa(D6, "Delete")
Utilice en su lugar:
Set IsThisNA = Sheets("items-1").Range("D6")
If Application.WorksheetFunction.IsNA(IsThisNA.Value) Then
ActiveCell.Value = "Delete"
End If
o, más sucintamente:
If Application.WorksheetFunction.IsNA(Sheets("items-1").Range("D6").Value) Then
ActiveCell.Value = "Delete"
End If
Respuesta2
Deberías hacer una cadena con la fórmula. Tienes:
ActiveCell.Value = IfNa(D6, "Delete")
Pero esto debería ser:
ActiveCell.Formula = "=IF(ISNA(D6), ""Delete"","""")"
Tenga en cuenta que agregué el segundo parámetro de IF
para que sea la cadena vacía, pero es posible que desee cambiar esto.
Nota: puedes usarIFNA
desde Excel 2011 en lugar de IF(ISNA(..),..)
.
Editar:Residencia enesta respuestapuedes extenderlo para toda la columna:
Range("E1").Formula = "=IF(ISNA(D1),""Delete"","""")"
Range("E1").AutoFill Destination:=Range("E:E"), Type:=xlFillDefault
También puedes poner un rango fijo, por ejemplo E1:E6
, como se indica enaquí.
Edición 2:Si desea completarlo para toda la columna, debe colocar la fórmula en la fila 1 (p. ej. E1
) y realizar el autocompletar en toda la columna (p. ej E:E
.). Si quieres menos filas debes indicarlo en el destino de autocompletar, por ejemplo:
Range("E2").Formula = "=IF(ISNA(D6),""Delete"","""")"
Range("E2").AutoFill Destination:=Range("E2:E10"), Type:=xlFillDefault
Entonces, el rango de autocompletar comienza en la misma ubicación que la fórmula ( E2
en este ejemplo).