VBA Odstrániť hárok - Ako odstrániť pracovný hárok pomocou kódu VBA?

Excel VBA Odstrániť hárok

Ak chcete odstrániť hárok vo formáte VBA, použijeme metódu odstránenia hárka. Aby sme najskôr mohli použiť túto metódu, musíme určiť, ktorý hárok odstraňujeme, tak, že zavoláme názov hárka. Máme dve metódy, ako urobiť to isté, najskôr priamo napíšeme sheet1.delete a druhou metódou sú listy (sheet1) .delete.

Nasleduje teda syntax.

Pracovné listy („Názov pracovného hárka“). Odstrániť

ALEBO

Hárky („Názov hárka“). Odstrániť

Najprv teda musíme zadať názov hárka pomocou pracovného hárka alebo objektu hárkov , potom môžeme použiť metódu „Odstrániť“ .

Ako odstrániť hárky programu Excel pomocou kódu VBA?

Príklad č. 1 - Odstráňte pracovný hárok pomocou jeho názvu

Predpokladajme, že máte veľa hárkov. Ak chcete konkrétny hárok odstrániť, musíte ho spomenúť podľa názvu. Mám napríklad 3 rôzne listy s názvom „Predaj 2016“, „Predaj 2017“ a „Predaj 2018“.

Ak chcem odstrániť hárok s názvom „ Predaj 2017 “, musím spomenúť názov hárku, ako je uvedené nižšie.

Kód:

Sub Delete_Example1 () Pracovné hárky („listy 2017“). Koniec Sub

Problém s priamym uvedením názvu listu sa nám nezobrazuje v zozname IntelliSense VBA. Metódu každopádne uveďte ako „ Odstrániť“.

Kód:

Sub Delete_Example1 () Pracovné listy ("listy 2017"). Odstrániť End Sub

Týmto sa vymaže hárok s názvom „ Predaj 2017 “.

Chyba pri odstraňovaní pracovného hárka: Ak sa pokúsime odstrániť pracovný hárok, ktorý neexistuje, alebo ak nesprávne uvedieme názov pracovného hárka, zobrazí sa chyba VBA ako „Dolný index mimo rozsahu“.

Vo vyššie uvedenom texte sa zobrazila chyba „Dolný index mimo rozsah“, pretože v mojom zošite neexistuje názov hárku s názvom „Predaj 2017“.

Príklad č. 2 - Odstráňte pracovný hárok podľa jeho názvu s premennými

Ako sme videli vo vyššie uvedenom príklade, v okamihu, keď pomocou objektu Worksheets odkazujeme na názov pracovného hárka, zoznam IntelliSense sa nám nezobrazí. Ak si chcete pozrieť zoznam IntelliSense, musíme použiť premenné.

Krok 1: Najskôr deklarujte premennú ako pracovný hárok .

Kód:

Sub Delete_Example2 () Dim Ws ako pracovný hárok End Sub

Krok 2: Pretože je pracovný hárok objektovou premennou, musíme premennú nastaviť na konkrétny pracovný hárok pomocou slova „ SET “.

Kód:

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

Premenná „Ws“ teraz odkazuje na pracovný hárok s názvom „Predaj 2017“.

Krok 3: Teraz pomocou premennej „ Ws “ môžeme získať prístup k celému zoznamu tabuľky IntelliSense.

Kód:

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

Krok 4: V zozname IntelliSense vyberte metódu „ Odstrániť “.

Kód:

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

Rovnako ako pomocou premenných môžeme získať prístup k zoznamu IntelliSense.

Príklad č. 3 - Odstrániť aktívny pracovný hárok

Aktívny hárok nie je nič iné ako ten, ktorý je aktívny alebo vybraný v danom okamihu. Pri tejto metóde nemusíme spomínať názov pracovného hárka. Napríklad sa pozrite na nižšie uvedený kód VBA.

ActiveSheet. Odstrániť

Momentálne je aktívny hárok „Predaj 2017“.

Ak spustím kód, vymaže sa aktívny hárok, tj. „Predaj 2017“.

Teraz vyberiem „Predaj 2016“.

Teraz odstráni aktívny hárok, tj. „Predaj 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

Vyššie uvedený kód spôsobí chybu, pretože sa pokúša odstrániť všetky hárky v zošite. Aby sa tomu zabránilo, musíme uchovať aspoň jeden pracovný hárok.

Ak chceme odstrániť všetky pracovné hárky okrem aktívneho hárku, musíme použiť nasledujúci kód.

Kód:

Sub Delete_Example2 () Dim Ws ako pracovný hárok pre každú Ws v ActiveWorkbooku. Pracovné listy, ak ActiveSheet.Name Ws.Name potom Ws.Delete End If Next Ws End Sub

Podobne, ak nechceme vymazať konkrétny pracovný hárok, ale všetky ostatné pracovné hárky, môžeme použiť nasledujúci kód.

Kód:

Sub Delete_Example2 () Dim Ws ako pracovný hárok pre každú W v ActiveWorkbooku. Pracovné listy, ak Ws.Name "Predaj 2018", potom 'Môžete zmeniť názov hárka Ws.Delete End If If Next Ws End Sub

Vyššie uvedený kód odstráni všetky pracovné hárky okrem hárka s názvom „Predaj 2018“.

Zaujímavé články...