VBA Eliminar fila

Excel VBA Eliminar fila

Normalmente, en la hoja de trabajo de Excel, tenemos dos métodos diferentes para eliminar filas, uno es el método abreviado de teclado y otro usando el método de clic derecho e insertar, pero en VBA tenemos que usar el comando de eliminación y la declaración de la hoja de trabajo para eliminar las filas juntas, el truco para esto es que si necesitamos eliminar una sola fila, damos una referencia de una sola fila pero para las columnas múltiples damos referencias de múltiples filas.

Usando el método de eliminación de filas de VBA, podemos eliminar todas las filas en blanco, podemos eliminar la fila en función del valor de la celda, también podemos eliminar la fila completa si alguna de las celdas está en blanco.

En este artículo, discutiremos el método "VBA Delete Row". Manténgase ocupado durante los próximos 15 a 20 minutos para aprender sobre el concepto.

¿Cómo eliminar una fila?

Puede descargar esta plantilla de Excel de VBA Delete Row aquí - VBA Delete Row Excel Template

Ejemplo 1

En VBA debemos mencionar la fila que estamos eliminando.

Código:

 Sub DeleteRow_Example1 () Celdas (1, 1) End Sub 

Las celdas (1, 1) significan la primera columna de la primera fila, es decir, la celda A1. Luego usamos el método "eliminar".

Código:

 Sub DeleteRow_Example1 () Celdas (1, 1) .Eliminar End Sub 

Ahora, esto eliminará la primera celda. Todos los valores del lado derecho se desplazarán una celda hacia la izquierda.

Ejemplo # 2

Si desea eliminar toda la fila, debemos usar la propiedad "EntireRow", luego debemos usar el método "eliminar" para eliminar toda la fila de la celda que hemos seleccionado.

Código:

Sub DeleteRow_Example2 () Celdas (1, 1) .EntireRow. Eliminar End Sub

Por ejemplo, he ingresado algunos caracteres en una hoja de Excel de la siguiente manera.

Ahora, si ejecuto este código, eliminará toda la fila, no una sola celda.

Ejemplo # 3

Podemos eliminar la fila de varias formas. En el ejemplo anterior, hemos eliminado la fila usando la propiedad CELLS, ahora veremos cómo eliminar usando la propiedad ROWS.

Ahora debemos mencionar cuál es la fila que necesitamos eliminar, digamos que necesitamos eliminar la quinta fila.

Ahora use la propiedad "EntireRow".

Después de seleccionar la propiedad, lo que debemos hacer, es decir, el método. Necesitamos eliminar la fila.

Código:

 Sub DeleteRow_Example3 () Filas (5) .EntireRow.Delete End Sub 

Entonces, este código eliminará la quinta fila.

Ejemplo # 4

Eliminar varias filas mediante el objeto de rango

¿Cómo eliminamos varias filas?

Podemos usar el objeto VBA RANGE para eliminar más de una fila. Suponga que tiene algunos valores de las celdas A1 a A6.

Ahora quiero eliminar las primeras 5 filas, por lo que puedo hacer referencia a estas filas utilizando el objeto Range como "Range (" A1: A5 ")"

Código:

 Sub DeleteRow_Example4 () Rango ("A1: A5") End Sub 

Ahora quiero usar la propiedad de palabra "EntireRow".

Código:

 Sub DeleteRow_Example4 () Rango ("A1: A5") .EntireRow End Sub 

En toda esta fila, necesitamos realizar el método de eliminación, así que use el método Delete.

Código:

 Sub DeleteRow_Example4 () Rango ("A1: A5"). EntireRow .Eliminar End Sub 

Ahora esto eliminará las filas seleccionadas.

Ejemplo # 5

Eliminar filas según el valor de la celda

También podemos usar este método "EntireRow.Delete" para eliminar la fila según el valor de la celda en VBA. Por ejemplo, tengo valores Sí y No de la celda A1 a A10.

Ahora necesitamos eliminar las filas que tienen el valor "No". Para realizar esta tarea necesitamos usar la función “SI” con bucles para borrar todas las filas que tienen el valor de “No”.

El siguiente código hará el trabajo por nosotros.

Código:

 Sub DeleteRow_Example5() Dim k As Integer For k = 10 To 1 Step -1 If Cells(k, 1).Value = "No" Then Cells(k, 1).EntireRow.Delete End If Next k End Sub 

Example #6

Delete All the Blank Cells Rows

There are situations where we need to delete the entire row if any of the cells in the range is blank. For example, I have below set of data.

All the colored cells are blank, so I need to delete the entire row. We can perform this task with two sets of code. Below is the code.

Code:

 Sub DeleteRow_Example6() Range("A1:F10").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

This will identify the blank cells in the range A1 to F10.IF any blank cells found will delete the entire row.

The problem with this code is it will only delete the blank cell’s row only in the range A1 to F10, but if any cells are blank in any other cells it will not delete. So keeping this in mind I have written one more code.

Code:

 Sub DeleteRow_Example7() Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox("Please select the range", "Blank Cells Rows Deletion", Type:=8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

When you run this code firstly it will ask you to select the range with an input box appearing in front of you.

After selecting the range you need to click on OK, it will delete all the blank cells rows in the selected range.