Este tutorial demostrará diferentes formas de eliminar filas y columnas en Excel usando VBA.
Eliminar toda la fila o columna
Para eliminar una fila completa en VBA, use esta línea de código:
1 | Filas (1) .Eliminar |
Tenga en cuenta que usamos el Borrar método para eliminar una fila.
En lugar de hacer referencia al Objeto de filas, puede hacer referencia a filas en función de su Objeto de rango con Fila completa:
1 | Rango ("a1"). EntireRow.Delete |
De manera similar, para eliminar una columna completa, use estas líneas de código:
1 | Columnas (1) .Eliminar |
1 | Rango ("a1"). EntireColumn.Delete |
Eliminar varias filas o columnas
Con la misma lógica, también puede eliminar varias filas a la vez:
1 | Filas ("1: 3"). Eliminar |
o columnas:
1 | Columnas ("A: C"). Eliminar |
Observe que aquí hacemos referencia a los números / letras de filas y columnas específicos rodeados de citas.
Por supuesto, también puede hacer referencia a EntireRow de un rango:
1 | Rango ("a1: a10"). EntireRow.Delete |
Nota: Los ejemplos a continuación solo demuestran la eliminación de filas, sin embargo, como puede ver arriba, la sintaxis es prácticamente idéntica para eliminar columnas.
Eliminar filas en blanco / vacías
Este ejemplo eliminará una fila si toda la fila está en blanco:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Atenuar celda como rangoPara cada celda del rango ("b2: b20")Si Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Entoncescell.EntireRow.DeleteTerminara siSiguiente celdaEnd Sub |
Utiliza la función de hoja de cálculo de Excel: CONTAR.
Eliminar fila si la celda está en blanco
Esto eliminará una fila si la columna específica de esa fila está en blanco (en este caso, la columna B):
1 | Rango ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Eliminar fila según el valor de la celda
Esto recorrerá un rango y eliminará filas si un determinado valor de celda en esa fila dice "eliminar".
1234567891011 | Sub DeleteRowswithSpecificValue ()Atenuar celda como rangoPara cada celda del rango ("b2: b20")Si cell.Value = "delete" Entoncescell.EntireRow.DeleteTerminara siSiguiente celdaEnd Sub |
Más ejemplos de eliminación de filas y columnas
Eliminar filas duplicadas
Este código eliminará todas las filas duplicadas en un rango:
1 | Rango ("b2: c100"). Eliminar columnas duplicadas: = 2 |
Observe que establecemos Columnas: = 2. Esto le dice a VBA que verifique las dos primeras columnas de datos al considerar si las filas están duplicadas. Un duplicado solo se encuentra cuando ambas columnas tienen valores duplicados.
Si hubiéramos establecido esto en 1, solo la primera fila habría sido revisada en busca de valores duplicados.
Eliminar filas de la tabla
Este código eliminará la segunda fila de una tabla haciendo referencia a ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Eliminar filas filtradas
Para eliminar solo las filas que son visibles después del filtrado:
1 | Rango ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Eliminar filas en el rango
Este código eliminará todas las filas en el rango:
1 | Rango ("a1: a10"). EntireRow.Delete |
Eliminar filas seleccionadas
Este código eliminará todas las filas seleccionadas:
1 | Selection.EntireRow.Delete |
Eliminar última fila
Esto eliminará la última fila utilizada en la columna B:
1 | Celdas (Rows.Count, 2) .End (xlUp) .EntireRow.Delete |
Al cambiar de 2 a 1, puede eliminar la última fila utilizada en la columna A, etc .:
1 | Celdas (Rows.Count, 1) .End (xlUp) .EntireRow.Delete |
Eliminar columnas por número
Para eliminar una columna por su número, use un código como este:
1 | Columnas (2) .Eliminar |