VBA Poista arkki - Kuinka poistaa laskentataulukko VBA-koodilla?

Sisällysluettelo

Excel VBA Poista taulukko

Voit poistaa taulukon VBA: ssa poistamalla laskentataulukon menetelmän. Tämän menetelmän soveltamiseksi meidän on ensin tunnistettava poistettava taulukko kutsumalla arkin nimeä. Meillä on kaksi tapaa tehdä sama, ensin kirjoitamme suoraan sheet1.delete ja toinen menetelmä on sheet (sheet1) .delete.

Joten syntaksia seuraa.

Taulukot ("Taulukon nimi"). Poista

TAI

Arkit ("Arkin nimi"). Poista

Joten, ensin meidän täytyy määrittää levyn nimeä käyttämällä joko Worksheet tai Sheets Object, sitten myöhemmin, voimme käyttää ”Poista” menetelmällä.

Kuinka poistaa Excel-taulukot VBA-koodilla?

Esimerkki # 1 - Poista laskentataulukko käyttämällä sen nimeä

Oletetaan, että sinulla on useita taulukoita, ja tietyn laskentataulukon poistamiseksi meidän on mainittava laskentataulukko sen nimellä. Minulla on esimerkiksi 3 erilaista arkkia nimeltä "Myynti 2016", "Myynti 2017" ja "Myynti 2018".

Jos haluan poistaa taulukon nimeltä Myynti 2017, minun on mainittava taulukon nimi kuten alla.

Koodi:

Sub Delete_Example1 () laskentataulukot ("taulukot 2017"). End Sub

Ongelma laskentataulukon nimen mainitsemisessa, emme näe VBA: n IntelliSense-luetteloa. Mainitse menetelmä joka tapauksessa nimellä " Poista".

Koodi:

Sub Delete_Example1 () laskentataulukot ("taulukot 2017"). Poista End Sub

Joten tämä poistaa taulukon nimeltä " Myynti 2017 ".

Virhe laskentataulukon poistamisessa: Jos yritämme poistaa laskentataulukon, jota ei ole olemassa, tai jos mainitsemme laskentataulukon nimen väärin, saamme VBA-virheen nimellä "Alakoodi alueen ulkopuolella".

Edellä mainitussa tapauksessa sain virheellisen alaindeksin, koska työkirjassani ei ole taulukon nimeä nimeltä "myynti 2017".

Esimerkki # 2 - Poista laskentataulukko sen nimen ja muuttujien avulla

Kuten olemme nähneet edellisestä esimerkistä, emme saa nähdä IntelliSense-luetteloa sillä hetkellä, kun viitataan laskentataulukon nimeen Worksheet-objektilla. Jotta voimme nähdä IntelliSense-luettelon, meidän on käytettävä muuttujia.

Vaihe 1: Ilmoita ensin muuttuja laskentataulukoksi .

Koodi:

Sub Delete_Example2 () Dim Ws laskentataulukon lopussa Sub

Vaihe 2: Koska laskentataulukko on objektimuuttuja, meidän on asetettava muuttuja tiettyyn laskentataulukkoon käyttämällä SET- sanaa.

Koodi:

Sub Delete_Example2 () Himmennä Ws laskentataulukko-joukoksi Ws = Taulukot ("Myynti 2017") Loppu Sub

Muuttuja "Ws" viittaa nyt laskentataulukkoon nimeltä "Myynti 2017".

Vaihe 3: Nyt muuttujaa " Ws " käyttämällä voimme käyttää kaikkia laskentataulukon IntelliSense-luetteloita.

Koodi:

Sub Delete_Example2 () Himmennä Ws taulukkosarjana Ws = laskentataulukot ("Myynti 2017") Ws. End Sub

Vaihe 4: Valitse IntelliSense-luettelosta Poista- menetelmä.

Koodi:

Sub Delete_Example2 () Himmennä Ws taulukkosarjana Ws = laskentataulukot ("Myynti 2017") Ws.Poista End Sub

Tällä tavoin muuttujien avulla pääsemme IntelliSense-luetteloon.

Esimerkki # 3 - Poista aktiivinen laskentataulukko

Aktiivinen taulukko on vain aktiivinen tai valittu työarkki. Tätä menetelmää varten meidän ei tarvitse mainita laskentataulukon nimeä. Katso esimerkiksi alla olevaa VBA-koodia.

ActiveSheet.Poista

Tällä hetkellä aktiivinen taulukko on ”Myynti 2017”.

Jos suoritan koodin, se poistaa aktiivisen taulukon, eli "Myynti 2017".

Nyt valitsen ”Myynti 2016”.

Nyt se poistaa aktiivisen taulukon eli "Myynti 2016".

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

Yllä oleva koodi heittää virheen, koska se yrittää poistaa kaikki työkirjan taulukot. Joten tämän välttämiseksi meidän on säilytettävä ainakin yksi laskentataulukko.

Jos haluamme poistaa kaikki laskentataulukot paitsi aktiivisen taulukon, meidän on käytettävä alla olevaa koodia.

Koodi:

Sub Delete_Example2 () Himmennä Ws laskentataulukoksi jokaiselle ActiveWorkbookin W: lle. Työarkit Jos ActiveSheet.Nimi Ws.Nimi sitten Ws.Poista Poista, jos Next Ws End Sub

Vastaavasti, jos emme halua poistaa tiettyä laskentataulukkoa, mutta poistaa kaikki muut laskentataulukot, voimme käyttää alla olevaa koodia.

Koodi:

Sub Delete_Example2 () Himmennä Ws laskentataulukoksi kullekin ActiveWorkbookin W: lle. Työarkit

Yllä oleva koodi poistaa kaikki laskentataulukot paitsi laskentataulukon nimeltä "Myynti 2018".

Mielenkiintoisia artikkeleita...