ВБА Делете Схеет - Како избрисати радни лист помоћу ВБА кода?

Преглед садржаја

Екцел ВБА Делете Схеет

За брисање листа у ВБА користимо методу Делете Ворксхеет. Да бисмо прво применили ову методу, морамо идентификовати који лист бришемо позивањем имена листа. Имамо две методе да учинимо исто, прво директно пишемо схеет1.делете, а друга метода је схеет (схеет1) .делете.

Дакле, следи синтакса.

Радни листови („Назив радног листа“). Избриши

ИЛИ

Табеле („Име листа“). Избриши

Дакле, прво морамо да наведемо име листа користећи Ворксхеет или Схеетс Објецт, а затим касније можемо да користимо методу „Делете“ .

Како избрисати Екцел табеле помоћу ВБА кода?

Пример # 1 - Избришите радни лист користећи његово име

Претпоставимо да имате много листова, а да бисмо избрисали одређени радни лист, радни лист морамо споменути по његовом имену. На пример, имам 3 различита листа под називом „Продаја 2016“, „Продаја 2017“ и „Продаја 2018“.

Ако желим да избришем лист под називом „ Продаја 2017 “, онда морам да споменем име листа као што је доле.

Шифра:

Подизбриши_Пример1 () Радни листови („листови 2017“). Енд Суб

Проблем са директним помињањем имена радног листа не видимо на ИнтеллиСенсе листи ВБА. У сваком случају спомените метод као „ Избриши“.

Шифра:

Суб Делете_Екампле1 () Радни листови („листови 2017“). Избриши Крај Суб

Дакле, овим ћете избрисати лист под називом „ Продаја 2017 “.

Грешка при брисању радног листа: Ако покушамо да избришемо радни лист који не постоји или ако погрешно наведемо име радног листа, добићемо ВБА грешку као „Субсцрипт Оут оф Ранге“.

У горенаведеном, добио сам грешку „Субсцрипт Оут оф Ранге“, јер у мојој радној свесци не постоји назив листа под називом „Продаја 2017“.

Пример # 2 - Избришите радни лист његовим именом са променљивим

Као што смо видели у горњем примеру, у тренутку када се позивамо на назив радног листа помоћу објекта Ворксхеетс, нећемо видети листу ИнтеллиСенсе. Да бисмо видели листу ИнтеллиСенсе, морамо да користимо променљиве.

Корак 1: Прво прогласите променљиву као Радни лист .

Шифра:

Суб Делете_Екампле2 () Дим Вс Ас Ворксхеет Енд Суб

Корак 2: Будући да је радни лист објектна променљива, морамо да поставимо променљиву на одређени радни лист помоћу речи „ СЕТ “.

Шифра:

Суб Делете_Екампле2 () Дим Вс Ас Ворксхеет Сет Вс = Ворксхеетс ("Салес 2017") Енд Суб

Сада се променљива „Вс“ односи на радни лист под називом „Продаја 2017“.

Корак 3: Сада, користећи променљиву „ Вс “, можемо да приступимо целој ИнтеллиСенсе листи радног листа.

Шифра:

Суб Делете_Екампле2 () Дим Вс Ас Ворксхеет Сет Вс = Ворксхеетс ("Салес 2017") Вс. Енд Суб

Корак 4: На листи ИнтеллиСенсе одаберите методу „ Делете “.

Шифра:

Суб Делете_Екампле2 () Дим Вс Ас Ворксхеет Сет Вс = Ворксхеетс ("Салес 2017") Вс.Делете Енд Суб

Овако користећи променљиве, можемо приступити листи ИнтеллиСенсе.

Пример # 3 - Избришите активни радни лист

Активни лист није ништа друго него било који радни лист који је тренутно активан или изабран. За ову методу не треба спомињати назив радног листа. На пример, погледајте доленаведени ВБА код.

АцтивеСхеет.Делете

Тренутно је активни лист „Продаја 2017“.

Ако покренем код, он ће избрисати активни лист, тј. „Продаја 2017“.

Сада ћу одабрати „Продаја 2016“.

Сада ће избрисати активни лист, тј. „Продаја 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

Горњи код ће довести до грешке јер покушава да избрише све листове у радној свесци. Да бисмо то избегли, морамо да задржимо бар један радни лист.

Ако желимо да избришемо све радне листове, осим активног листа, онда морамо да користимо доњи код.

Шифра:

Под Делете_Екампле2 () Затамни В као радни лист за сваки В у АцтивеВоркбоок.Ворксхеетс Иф АцтивеСхеет.Наме Вс.Наме тхен Вс.Делете Енд Иф Нект Вс Енд Суб

Слично томе, ако не желимо да избришемо одређени радни лист, већ да избришемо све остале радне листове, онда можемо користити доњи код.

Шифра:

Под Делете_Екампле2 () Затамни В као радни лист за сваки В у АцтивеВоркбоок.Ворксхеетс Иф Вс.Наме "Салес 2018" тхен 'Можете да промените име радног листа Вс.Делете Енд Иф Нект Вс Енд Суб

Горњи код ће избрисати све радне листове осим радног листа под називом „Продаја 2018“.

Занимљиви Чланци...