Hoja de eliminación de VBA

Hoja de eliminación de Excel VBA

Para eliminar la hoja en VBA, utilizamos el método Eliminar hoja de trabajo. Para aplicar este método, primero debemos identificar qué hoja estamos eliminando llamando al nombre de la hoja. Tenemos dos métodos para hacer lo mismo, primero escribimos directamente sheet1.delete y el segundo método es sheets (sheet1) .delete.

Entonces la sintaxis sigue.

Hojas de trabajo ("Nombre de la hoja de trabajo"). Eliminar

O

Hojas ("Nombre de hoja"). Eliminar

Entonces, primero, necesitamos especificar el nombre de la hoja usando la Hoja de Trabajo o el Objeto de Hojas , luego podemos usar el método “Eliminar” .

¿Cómo eliminar hojas de Excel usando código VBA?

Puede descargar esta plantilla de Excel de hoja de eliminación de VBA aquí - Plantilla de Excel de hoja de eliminación de VBA

Ejemplo # 1 - Eliminar hoja de trabajo usando su nombre

Suponga que tiene muchas hojas y para eliminar la hoja de trabajo en particular, necesitamos mencionar la hoja de trabajo por su nombre. Por ejemplo, tengo 3 hojas diferentes llamadas "Ventas 2016", "Ventas 2017" y "Ventas 2018".

Si quiero eliminar la hoja denominada " Ventas 2017 ", tengo que mencionar el nombre de la hoja como se muestra a continuación.

Código:

Sub Delete_Example1 () Hojas de trabajo ("hojas 2017"). End Sub

El problema de mencionar el nombre de la hoja de trabajo directamente es que no podemos ver la lista IntelliSense de VBA. De todos modos mencione el método como " Eliminar ".

Código:

Sub Delete_Example1 () Hojas de trabajo ("hojas 2017"). Eliminar End Sub

Así que esto eliminará la hoja denominada " Ventas 2017 ".

Error al eliminar la hoja de trabajo: si intentamos eliminar la hoja de trabajo que no existe o si mencionamos el nombre de la hoja de trabajo incorrectamente, obtendremos el error vba como "Subíndice fuera de rango".

En lo anterior, recibí el error "Subíndice fuera de rango" porque en mi libro de trabajo no hay un nombre de hoja llamado "Ventas 2017".

Ejemplo n. ° 2 - Eliminar hoja de trabajo por su nombre con variables

Como hemos visto en el ejemplo anterior, en el momento en que nos referimos al nombre de la hoja de trabajo usando el objeto Worksheets, no podemos ver la lista de IntelliSense. Para ver la lista de IntelliSense, necesitamos usar variables.

Paso 1: Primero declare la variable como Hoja de trabajo .

Código:

 Sub Delete_Example2 () Dim Ws As Worksheet End Sub 

Paso 2: Dado que la hoja de trabajo es una variable de objeto, necesitamos establecer la variable en la hoja de trabajo específica usando la palabra " SET ".

Código:

 Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Ventas 2017") End Sub 

Ahora, la variable "Ws" se refiere a la hoja de trabajo denominada "Ventas 2017".

Paso 3: Ahora usando la variable “ Ws ” podemos acceder a toda la lista de IntelliSense de la hoja de trabajo.

Código:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Ventas 2017") Ws. End Sub

Paso 4: En la lista IntelliSense, seleccione el método " Eliminar ".

Código:

 Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Ventas 2017") Ws.Delete End Sub 

Así, usando variables, podemos acceder a la lista de IntelliSense.

Ejemplo n. ° 3 - Eliminar hoja de trabajo activa

Hoja activa no es más que cualquier hoja de trabajo activa o seleccionada en ese momento. Para este método, no necesitamos mencionar el nombre de la hoja de trabajo. Por ejemplo, mire el siguiente código VBA.

ActiveSheet.Delete

En este momento, la hoja activa es "Ventas 2017".

Si ejecuto el código, eliminará la hoja activa, es decir, "Ventas 2017".

Ahora seleccionaré "Ventas 2016".

Ahora eliminará la hoja activa, es decir, "Ventas 2016".

De esta manera, podemos usar el objeto "Hoja activa" para eliminar la hoja de trabajo.

Nota: Para utilizar este método, debemos estar absolutamente seguros de lo que estamos haciendo con la hoja activa y qué hoja va a ser una hoja activa.

Ejemplo n. ° 4: eliminar más de una hoja de trabajo

En nuestros ejemplos anteriores, hemos visto cómo eliminar una sola hoja, pero ¿qué pasa si tenemos varias hojas de trabajo, digamos que queremos eliminar 10 hojas de trabajo?

No podemos seguir escribiendo 10 líneas de código para eliminar la hoja de trabajo, por lo que necesitamos usar bucles para recorrer la colección de hojas de trabajo y eliminarlas.

El siguiente código recorrerá las hojas de trabajo y eliminará todas las hojas de trabajo del libro.

Código:

 Sub Delete_Example2 () Dim Ws como hoja de trabajo para cada W en ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub 

El código anterior arrojará un error porque intenta eliminar todas las hojas del libro. Entonces, para evitar esto, necesitamos retener al menos una hoja de trabajo.

Si queremos eliminar todas las hojas de trabajo excepto la hoja activa, entonces debemos usar el siguiente código.

Código:

 Sub Delete_Example2 () Dim Ws como hoja de trabajo para cada W en ActiveWorkbook.Worksheets If ActiveSheet.Name Ws.Name Entonces Ws.Delete End If Next Ws End Sub 

Similarly, if we don’t want to delete specific worksheet but to delete all other worksheets then we can use below code.

Code:

 Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name  "Sales 2018" Then 'You can change the worksheet name Ws.Delete End If Next Ws End Sub 

The above code will delete all the worksheets except the worksheet named as “Sales 2018”.