VBA Delete Sheet | Com esborra el full de treball amb el codi VBA?

Full de supressió d'Excel VBA

Per esborrar el full a VBA, utilitzem un mètode per eliminar el full de treball Per aplicar primer aquest mètode, hem d’identificar quin full suprimim trucant al nom del full. Tenim dos mètodes per fer el mateix: primer escrivim directament full1.delete i el segon mètode és fulls (full1) .delete.

Per tant, la sintaxi segueix.

Fulls de treball ("Nom del full de treball"). Suprimeix

O

Fulls de càlcul ("Nom del full"). Suprimeix

Per tant, primer, hem d’especificar el nom del full utilitzant qualsevol dels dos Full de treball o bé Fulls Objecte, després podrem utilitzar el fitxer "Suprimeix" mètode.

Com esborrar fulls d'Excel mitjançant el codi VBA?

Podeu descarregar aquesta plantilla Excel de fulls VBA Delete aquí: plantilla Excel de fulls VBA Delete

Exemple 1: suprimiu el full de treball utilitzant el seu nom

Suposem que teniu molts fulls i, per suprimir el full de treball concret, hem d’esmentar el full de treball pel seu nom. Per exemple, tinc 3 fulls diferents anomenats "Vendes 2016", "Vendes 2017" i "Vendes 2018".

Si vull eliminar el full anomenat com a “Vendes 2017”Llavors he d’esmentar el nom del full com el següent.

Codi:

 Sub Suprimeix_Exemple1 () Fulls de treball ("fulls 2017"). Finalitzar sub 

El problema d’esmentar el nom del full de treball directament no veurem la llista IntelliSense de VBA. De totes maneres esmenta el mètode com "Suprimeix”.

Codi:

 Sub Suprimeix_Exemple1 () Fulls de treball ("fulls 2017"). Suprimeix la subfin 

Així, se suprimirà el full anomenat com a "Vendes 2017“.

Error en suprimir el full de treball: Si intentem suprimir el full de treball que no existeix o si mencionem malament el nom del full de treball, obtindrem l’error vba com "Subíndex fora de rang".

A l'anterior, he rebut l'error "Subscript Out of Range" perquè al meu llibre no hi ha cap nom de full anomenat "Sales 2017".

Exemple 2: suprimiu el full de treball pel seu nom amb variables

Com hem vist l'exemple anterior en el moment en què referim el nom del full de càlcul mitjançant l'objecte Fulls de treball, no veiem la llista IntelliSense. Per veure la llista IntelliSense hem d’utilitzar variables.

Pas 1: Primer declareu la variable com Full de treball.

Codi:

 Sub Delete_Example2 () Atenueu Ws com a final del full de treball Sub 

Pas 2: Com que el full de càlcul és una variable objecte, hem d’establir la variable al full de treball específic mitjançantCONJUNT”Paraula.

Codi:

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

Ara la variable "Ws" fa referència al full de treball anomenat "Vendes 2017".

Pas 3: Ara s'utilitza la variable "Ws”Podem accedir a tota la llista IntelliSense del full de treball.

Codi:

 Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws. Finalitzar sub 

Pas 4: A la llista IntelliSense, seleccioneu laSuprimeix”Mètode.

Codi:

 Sub Delete_Example2 () Atenueu Ws com a conjunt de fulls de treball Ws = Fulls de treball ("Sales 2017"). 

Així, utilitzant variables, podem accedir a la llista IntelliSense.

Exemple 3: suprimir el full de treball actiu

El full actiu no és res més que el full de treball actiu o seleccionat en aquest moment. Per a aquest mètode, no cal esmentar el nom del full de càlcul. Per exemple, mireu el codi VBA següent.

ActiveSheet.Delete

Ara mateix, el full actiu és "Vendes 2017".

Si executo el codi, esborrarà el full actiu, és a dir. "Vendes 2017".

Ara seleccionaré "Vendes 2016".

Ara suprimirà el full actiu, és a dir, "Vendes 2016".

Així, podem utilitzar l'objecte "Full actiu" per suprimir el full de treball.

Nota: Per utilitzar aquest mètode, hem d’estar absolutament segurs del que fem amb el full actiu i de quin full serà un full actiu.

Exemple # 4: suprimiu més d'un full de treball

En els nostres exemples anteriors, hem vist com suprimir un sol full, però què passa si tenim diversos fulls de treball, diguem que volem suprimir 10 fulls de treball.

No podem continuar escrivint 10 línies de codi per suprimir el full de càlcul, de manera que hem d’utilitzar bucles per recórrer la col·lecció de fulls de treball i eliminar-los.

A sota, el codi recorrerà els fulls de treball i suprimirà tots els fulls de treball del llibre.

Codi:

 Sub Delete_Example2 () Atenueu Ws com a full de treball per a cada Ws d'ActiveWorkbook. Fulls de treball Ws. Elimineu el següent Ws End Sub 

El codi anterior generarà un error perquè intenta suprimir tots els fulls del llibre. Per tant, per evitar-ho, hem de conservar almenys un full de càlcul.

Si volem suprimir tots els fulls de càlcul, excepte el full actiu, hem d’utilitzar el codi següent.

Codi:

 Sub Delete_Example2 () Atenueu Ws com a full de càlcul per a cada Ws d'ActiveWorkbook.Whesheets if ActiveSheet.Name Ws.Name, llavors Ws.Delete End (Fin) Si el següent Ws End Sub 

De la mateixa manera, si no volem suprimir un full de càlcul específic però suprimir la resta de fulls de treball, podem utilitzar el codi següent.

Codi:

 Sub Delete_Example2 () Atenueu Ws com a full de càlcul per a cada Ws d'ActiveWorkbook. Fulls de treball si Ws.Name "Sales 2018" Aleshores, podeu canviar el nom del full de treball. 

El codi anterior suprimirà tots els fulls de càlcul, excepte el full de càlcul anomenat "Vendes 2018".