Una de las primeras macros que un aprendiz de visual basic necesita es la de eliminar filas vacías de un archivo de Excel con una cantidad considerable de filas, en las que la eliminación una a una se hace totalmente inviable.
Paso a Paso
Para eliminar filas en blanco o vacías en Excel con VBA, debemos aplicar un código que evalúe todas las filas, y en caso de que cumpla la condición que le propondremos, proceda a eliminar la fila.Declaración de variables
Primeramente declararemos la variable ultimafila, que nos ayudará a conocer cuál es la última fila del archivo Excel en el que estemos trabajando, con información de nuestra tabla. Siempre recordando que dependiendo de la columna por la que contemos, nos dará un resultado u otro.
Después, declararemos una variable Integer que nos irá indicando en cada momento en qué fila nos encontramos. Este valor no será superior a la última fila.
Dim ultimafila, j as Integer
En este caso recorreremos el archivo desde la última fila del mismo hasta la segunda, suponiendo que en la primera fila esté el encabezado.
For j = ultimafila To 2 Step -1
(código)
Next j
Imaginemos que el archivo tiene 10 filas, al principio j será igual a 10. Una vez ejecute el código que le indiquemos, con la última línea que dice next j, la j tomará el valor 9 y así sucesivamente hasta el valor 2.
Después, declararemos una variable Integer que nos irá indicando en cada momento en qué fila nos encontramos. Este valor no será superior a la última fila.
Dim ultimafila, j as Integer
Método For Next
Una vez declaradas las variables, con el método For Next, iremos indicando en cada momento dónde estamos de ese recorrido que queremos hacer.En este caso recorreremos el archivo desde la última fila del mismo hasta la segunda, suponiendo que en la primera fila esté el encabezado.
For j = ultimafila To 2 Step -1
(código)
Next j
Imaginemos que el archivo tiene 10 filas, al principio j será igual a 10. Una vez ejecute el código que le indiquemos, con la última línea que dice next j, la j tomará el valor 9 y así sucesivamente hasta el valor 2.
Método If Then
Otro método importante a tener en cuenta es el método If Then, que básicamente es aplicar un condicional a nuestra macro.
Suponiendo que j en estos momentos es igual a 10.
Suponiendo que j en estos momentos es igual a 10.
If Range("D" & j).Value = "" Then
Rows(j).Delete
End If
Estamos evaluando que si la celda D10 es igual a vacío, entonces, elimine la fila 10. Básicamente he escrito en palabras lo que decía más arriba con código.
Estamos evaluando que si la celda D10 es igual a vacío, entonces, elimine la fila 10. Básicamente he escrito en palabras lo que decía más arriba con código.
Eliminar filas vacías
Una vez explicados todos los pasos, este sería el código completo.
Dim ultimafila, j as Integer
For j = ultimafila To 2 Step -1
Next j
For j = ultimafila To 2 Step -1
If Range("D" & j).Value = "" Then
Rows(j).Delete
End If
Next j
No hay comentarios:
Publicar un comentario