Eliminar una fila en VBA
- Eliminar una fila en VBA
- Cómo eliminar una fila completa en VBA
- Cómo eliminar varias filas en VBA
- Cómo eliminar filas alternativas en VBA
- Cómo eliminar filas en blanco en VBA
- Cómo eliminar filas con valores específicos en VBA
- Cómo eliminar filas duplicadas en VBA
Presentaremos cómo podemos eliminar filas para diferentes situaciones con ejemplos en VBA.
Eliminar una fila en VBA
Eliminar una fila de una hoja de Excel es un trabajo fácil que se puede hacer usando el método abreviado de teclado o un mouse o panel táctil. Pero cuando somos específicos acerca de eliminar una o varias filas, es útil trabajar con la ruta VBA.
VBA se utiliza para eliminar filas o columnas de una hoja de Excel si los campos innecesarios forman parte de los datos. Puede ayudar al usuario a eliminar una columna en una determinada condición.
Por ejemplo, las filas duplicadas se pueden eliminar fácilmente con el comando VBA.
Este artículo cubre algunos de los principales ejemplos y códigos VBA relacionados que pueden ser útiles para que el usuario trabaje en hojas de cálculo de Excel. Estos múltiples escenarios incluyen:
-
Para eliminar una fila completa
1.1. Para eliminar la primera fila
1.2. Para eliminar una fila específica
-
Para eliminar varias filas
-
Para eliminar filas alternativas
-
Para eliminar filas en blanco
-
Para eliminar filas con valores de fecha específicos
-
Para eliminar filas duplicadas
Cómo eliminar una fila completa en VBA
Ahora, analicemos nuestro primer escenario en el que intentaremos eliminar la primera fila en VBA; si queremos eliminar la primera fila, el método EntireRow.Delete
de VBA nos puede ayudar.
Ahora usemos este método en nuestro ejemplo para eliminar la primera fila de nuestra hoja de Excel.
Crearemos un sub
como deleteFirstRow()
. El código para este propósito se muestra a continuación.
# VBA
Sub DeleteFirstRow()
ThisWorkbook.Worksheets(1).Rows(1).EntireRow.Delete
End Sub
Producción:
El ejemplo anterior muestra que este código funciona al especificar que la fila se refiere a un número específico y luego usa el método EntireRow.Delete
; por lo tanto, el código se puede usar para cualquier fila mencionando el número de fila.
Entonces, intentemos eliminar los números de fila 7 y 10 usando el método anterior como se muestra a continuación.
# VBA
Sub DeleteSpecificRow()
ThisWorkbook.Worksheets(1).Rows(7).EntireRow.Delete
ThisWorkbook.Worksheets(1).Rows(10).EntireRow.Delete
End Sub
Producción:
El ejemplo anterior muestra que cuando pasamos el número de fila que queremos eliminar, podemos eliminar fácilmente toda la fila usando el método EntireRow.Delete
.
Cómo eliminar varias filas en VBA
Eliminamos varias filas usando los múltiples métodos EntireRow.Delete
en el ejemplo anterior. Pero ahora, hablaremos sobre cómo podemos eliminar varias filas con un solo método.
Podemos usar el objeto rango
en VBA para eliminar varias filas. El usuario selecciona primero la cantidad de celdas que desea eliminar de la hoja de Excel y pasa el rango como se muestra a continuación.
# VBA
Sub deleteMultipleRow()
Range("A1:C7").EntireRow.Delete
End Sub
Producción:
El ejemplo anterior muestra que usando el método Range()
, podemos pasar el rango de filas y columnas que queremos eliminar usando el método EntireRow.Delete
.
Varias filas y columnas pueden eliminarse directamente de los datos. Usamos el código VBA para eliminar varias filas (fila 2 a fila 7) de los datos.
# VBA
Rows("2:7").Delete
Producción:
Si queremos eliminar un rango de columnas (de B a C), podemos usar el siguiente método.
# VBA
Columns("B:C").Delete
Producción:
Cómo eliminar filas alternativas en VBA
Las hojas de Excel se usan para muchos propósitos y es un software común que se usa para guardar registros en forma de hojas de Excel. Las hojas de Excel son una parte básica del sistema financiero porque la mayoría de los datos se almacenan en hojas de Excel para encontrar el resultado de esos datos con fórmulas.
Algunas hojas de Excel financieras contienen filas vacías en números alternativos que deben eliminarse para mejorar el registro. VBA ayuda al usuario a eliminar filas alternativas completas que no son útiles.
Como se muestra a continuación, intentemos eliminar las filas con números alternativos y crear un sub
para este propósito.
Sub AlternateRowDel()
rowLen = Selection.Rows.Count
For a = rowLen To 1 Step -2
Selection.Rows(a).EntireRow.Delete
Next a
End Sub
Producción:
Como puede ver en el apartado anterior AlternateRowDel()
, guardamos el número de filas de la selección en una variable rowLen
, que es el número total de filas que se eliminarán por completo.
Dentro de nuestro sub, tenemos un bucle for
que se ejecuta con un Paso -2
, que indica que se eliminará cada segunda fila. Si queremos eliminar cada tercera fila, escriba paso -3
, y podemos usar el mismo proceso para cualquier número diferente de la fila alternativa que el usuario desea eliminar de los datos.
Cómo eliminar filas en blanco en VBA
Cuando estamos trabajando con una gran colección de datos, hay posibilidades de que muchas o pocas filas estén vacías. Es posible que deseemos eliminarlos con VBA porque puede llevar mucho tiempo y ser difícil encontrarlos si comenzamos a eliminarlos manualmente.
El código suele funcionar con mayor precisión que los humanos cuando proporcionamos una gran recopilación de datos. Un método, SpecialCells
, puede eliminar estas filas.
Podemos pasar los xlCellTypeBlanks
, seleccionando solo celdas en blanco. Como se muestra a continuación, veamos un ejemplo e intentemos eliminar todas las filas en blanco usando VBA.
# VBA
Sub RemoveBlankRows()
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Producción:
El ejemplo anterior muestra que podemos eliminar cientos o miles de filas vacías con una línea de código. Si empezamos a borrarlos manualmente, puede tardar horas o días.
Cómo eliminar filas con valores específicos en VBA
A veces podemos encontrarnos con una situación en la que tenemos que eliminar filas que contienen un valor específico. Y puede ser un proceso difícil y agitado eliminar estas filas manualmente.
Pero VBA también proporciona la solución para este problema. Podemos crear un sub personalizado que pueda iterar a través de todas las filas y encontrar ese valor específico.
Si el valor se encuentra en alguna de estas filas, podemos eliminar esa fila usando el método EntireRow.Delete
.
Usemos esta lógica en nuestro ejemplo, como se muestra a continuación.
# VBA
Sub RemoveWithValue()
For a = Selection.Rows.Count To 1 Step -1
If Cells(a, 1).Value = "Delete" Then
Cells(a, 1).EntireRow.Delete
End If
Next a
End Sub
Producción:
El ejemplo anterior muestra que este código recorrerá todas las filas y encontrará la palabra eliminar
. Si se encontró eliminar
en alguna de estas filas.
Nuestro código eliminará estas filas.
Cómo eliminar filas duplicadas en VBA
Puede haber situaciones en las que tengamos un conjunto de datos con muchos duplicados que pueden causar problemas en algunos de los resultados. Eliminar duplicados también puede resultar frenético si empezamos a hacerlo de forma manual.
También puede ser difícil recordar si una determinada entrada apareció antes.
Para hacerlo más fácil y sencillo, podemos usar otro método en VBA, RemoveDuplicates
. Este método toma un rango, encuentra duplicados y los elimina.
Usemos este escenario en nuestro ejemplo, como se muestra a continuación.
# VBA
Range("A1:A10").RemoveDuplicates Columns:=1
Producción:
El ejemplo anterior muestra que pasamos el rango de la celda a1
a la celda b10
. Y nuestro código encontrará cualquier duplicado y lo eliminará.
Cómo usar el código VBA en una hoja de Excel
A veces, las personas se confunden acerca de dónde pueden escribir un código VBA para ejecutar los scripts en sus hojas de Excel.
Aquí hay algunos pasos que podemos seguir para ejecutar cualquiera de nuestros códigos VBA en cualquier hoja de Excel que queramos.
-
Primero, necesitamos abrir el editor de VBA. Podemos abrir fácilmente el editor de VBA pulsando los siguientes botones.
Primero, mantendremos presionada la tecla ALT y luego presionaremos la tecla F11.
-
Una vez abierto el editor de VBA, iremos a la opción
Ver
y seleccionaremosExplorador de proyectos
. También podemos obtener el Explorador de proyectos en el lado izquierdo de la hoja de trabajo cuando ingresamos al modo de editor de VBA. -
Ahora, haremos clic con el botón derecho en el objeto en el que queremos ejecutar el código.
-
Ahora, agregaremos un módulo a nuestra hoja de trabajo. Podemos agregar fácilmente el módulo a nuestra hoja de trabajo haciendo clic en
Insertar
y seleccionandoMódulo
. -
Copiaremos el código que queremos pegar y lo pegaremos. O, si queremos escribir el código allí, podemos hacerlo.
-
Ejecutaremos el código manteniendo el cursor y presionando la tecla F5. También podemos ejecutar el código VBA haciendo clic en el triángulo verde presente en la barra de herramientas de VBA.