Al eliminar una fila con VBA

En Excel, puede eliminar una fila haciendo clic con el botón derecho en el número de la fila y luego seleccionando Eliminar. Pero cuando desea eliminar filas utilizando métodos más sofisticados, debe usar VBA. Le permitirá eliminar filas de muchas maneras diferentes.

Eliminar una fila específica

La forma más básica de eliminar una fila en VBA es utilizando el número de fila.

Sub deleteSpecificRow()Rows(4).DeleteEnd Sub

Esto eliminará la cuarta fila cada vez que se ejecuta la macro.

Eliminar varias filas

también puede eliminar un par de filas a la vez. En lugar de seleccionar el número de fila, seleccione un rango de filas.

Sub deleteMultipleRows()Rows("2:4").DeleteEnd Sub

Eliminará las filas 2, 3 y 4.

Eliminar filas seleccionadas

Hasta ahora hemos creado macros que eliminan filas con números fijos dentro del código. Esta vez, eliminemos filas de una selección. Usemos el siguiente código.

Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub

Eliminar filas en blanco

En este ejemplo, Excel identifica qué celdas están en blanco, las selecciona y elimina las filas en las que están presentes.

Sub deleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

Esta macro elimina las filas de la selección sólo si contiene la frase «Mal de la Fila».

PRECAUCIÓN

Recuerde que el texto distingue entre mayúsculas y minúsculas.

Sub deleteRowswithSelectedText()For Each Cell In Selection If Cell.Value = "Bad Row" Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

el análisis de Código

2. El bucle pasa por cada elemento de la selección.

3. Excel comprueba el valor real de la celda y si el valor es exactamente «Fila incorrecta».

4. Si se cumple la condición, Excel borra el contenido de la celda. No podemos eliminar la celda porque la posición de la celda cambiará y algunas de las «Filas defectuosas» pueden permanecer.

7. Cuando se borran todas las «Filas defectuosas», Excel selecciona estas celdas.

8. Luego elimina las filas de estas celdas.

Si también desea eliminar las filas que consisten en esta frase, y no solo la coincidencia exacta, use la función InStr. Esta función devuelve la posición de la primera aparición de la frase.

Cambiar

Cell.Value = "Bad Row"

para

InStr(Cell, "Bad Row") > 0

Tenemos cuatro ejemplos diferentes dentro de nuestra hoja de cálculo. Cada uno de ellos devuelve una posición.

  • «Mala Fila» devuelve 1
  • «Buena Fila» devuelve 0
  • «1 Mala Fila» devuelve 3
  • «Mala Fila !»devuelve 1

lo que significa Que todas las filas, pero «Buena Fila» serán eliminados.

Eliminar fila donde el tipo de célula es un string

En este ejemplo, vamos a eliminar una fila si el tipo de célula es una cadena.

A primera vista, las celdas A3, A4 y A5 parecen ser del mismo tipo. Pero cuando miras lo que está sucediendo detrás de escena (Ctrl + `) verás que cada uno de ellos es diferente.

Sub deleteifString()Selection.SpecialCells(xlCellTypeConstants, 2).SelectSelection.EntireRow.DeleteEnd Sub

En la segunda línea, usted tiene el siguiente código: xlCellTypeConstants. Significa que estamos buscando constantes. El número 2 significa el segundo tipo, que es texto.

Excel elija sólo los valores de tipo texto.

El resultado.

Eliminar filas pares/impares

Ahora eliminemos solo aquellas filas que sean pares.

Sub deleteEven()For Each Cell In Selection If Cell.Row Mod 2 = 0 Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

El código es muy similar al del ejemplo anterior. Solo hay una diferencia.

Celda.Mod de fila 2 = 0

Esto significa, si el resto después de la división es 0 (para números: 2, 4, 6, 8, …) entonces el número es par, si es 1 entonces es un número impar (1, 3, 5, 6, …).

Hoja de cálculo y Python entusiasta.

Post Vistas: 72,354

Deja una respuesta

Tu dirección de correo electrónico no será publicada.