Macro eliminar filas con valor

Tengo esta macro que me elimina las filas cuando el valor es

#N/D, pero me ha dejado de funcionar cuando el valor es #CALC! Me podéis echar una mano.

Muchas gracias.

Sub Borrar_Filas()

Dim ultifila As Integer
'guardo la última fila utilizada en la col A
ultifila = Range("A65536").End(xlUp).Row
'ajustar rango de inicio
ActiveSheet.Range("C1").Select
While ActiveCell.Row <= ultifila
If ActiveCell.Value = "" Then
ActiveCell.EntireRow.Delete
ultifila = ultifila - 1
Else
ActiveCell.Offset(1, 0).Select
End If
Wend

End Sub

2 Respuestas

Respuesta
2

Para eliminar cualquier error.

Si tienes el error como valor:

Sub Borrar_filas_v3()
  Application.ScreenUpdating = False
  On Error Resume Next
  Range("C1", Range("C" & Rows.Count).End(3)).SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
  Application.ScreenUpdating = True
End Sub

Si el error es el resultado de una fórmula, entonces cambia xlCellTypeConstants por xlCellTypeFormulas

---------------

Recomendado:

Respuesta

Macro Mejorada para Eliminar Filas con #N/D y #CALC!

vba

Sub Borrar_Filas()
Dim ultifila As Integer
Dim Rango As Range
Dim celda As Range
'Guardar la última fila utilizada en la columna A
ultifila = Range("A65536").End(xlUp).Row
'Establecer el rango a revisar en la columna C
Set Rango = ActiveSheet.Range("C1:C" & ultifila)
'Recorrer el rango de forma inversa para evitar problemas al eliminar filas
For Each celda In Rango
    If IsError(celda.Value) Then
        If celda.Value = CVErr(xlErrNA) Or celda.Value = CVErr(xlErrCalc) Then
            celda.EntireRow.Delete
        End If
    End If
Next celda
End Sub

Explicación del Código

  • Recorrer el Rango Inversamente: Recorremos las celdas en el rango desde C1 hasta la última fila de la columna C.

  • IsError: Verificamos si la celda contiene un error.

  • CVErr: Utilizamos CVErr(xlErrNA) para #N/D y CVErr(xlErrCalc) para #CALC!.

Este enfoque es más robusto y debería funcionar para eliminar filas con ambos tipos de errores.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas