ВБА Делете Схеет | Како избрисати радни лист помоћу ВБА кода?
Екцел ВБА Делете Схеет
За брисање листа у ВБА користимо методу Делете Ворксхеет. Да бисмо прво применили ову методу, морамо идентификовати који лист бришемо позивањем имена листа. Имамо две методе да учинимо исто, прво директно пишемо схеет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“.
Овако, објект „Ацтиве Схеет“ можемо користити за брисање радног листа.
Белешка: Да бисмо користили ову методу, морамо бити потпуно сигурни шта радимо са активним листом и који ће лист бити активни лист.
Пример # 4 - Избришите више од једног радног листа
У нашим горњим примерима видели смо како да избришемо један лист, али шта ако имамо више радних листова, рецимо да желимо да избришемо 10 радних листова.
Не можемо да наставимо да пишемо 10 редова кода да бисмо избрисали радни лист, тако да морамо да користимо петље да бисмо прелистали колекцију радних листова и избрисали их.
Испод кода ће проћи кроз радне листове и избрисати све радне листове у радној свесци.
Шифра:
Подизбриши_Пример2 () Затамни В као радни лист за сваки Вс у АцтивеВоркбоок.Ворксхеетс Вс.Делете Нект Вс Енд Суб
Горњи код ће довести до грешке јер покушава да избрише све листове у радној свесци. Да бисмо то избегли, морамо да задржимо бар један радни лист.
Ако желимо да избришемо све радне листове осим активног листа, онда морамо да користимо доњи код.
Шифра:
Под Делете_Екампле2 () Затамни В као радни лист за сваки В у АцтивеВоркбоок.Ворксхеетс Иф АцтивеСхеет.Наме Вс.Наме тхен Вс.Делете Енд Иф Нект Вс Енд Суб
Слично томе, ако не желимо да избришемо одређени радни лист, већ да избришемо све остале радне листове, можемо користити доњи код.
Шифра:
Под Делете_Екампле2 () Затамни В као радни лист за сваки В у АцтивеВоркбоок.Ворксхеетс Иф Вс.Наме "Салес 2018" тхен 'Можете да промените име радног листа Вс.Делете Енд Иф Нект Вс Енд Суб
Горњи код ће избрисати све радне листове, осим радног листа названог „Продаја 2018“.