ВБА Протецт / Унпротецт Ворксхеетс

Овај водич ће вас научити све о заштити Екцел радног листа у ВБА - Како заштитити или уклонити заштиту радних листова у Екцелу.

Уклоните заштиту Екцел радног листа без лозинке

Да бисте уклонили заштиту радног листа који није заштићен лозинком, користите ову једноставну линију кода:

1 Радни листови („Лист1“). Уклоните заштиту

Уклоните заштиту Екцел радног листа лозинком

Да бисте уклонили заштиту радног листа заштићеног лозинком, морате такође да унесете лозинку:

1 Радни листови („Лист1“). Уклоните заштиту са „лозинке“

Уклони заштиту листа - Изгубљена лозинка

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

Заштитите радне листове

Заштита радног листа омогућава вам да закључате одређене аспекте листа од уређивања.

Овај мени се налази у Почетна> Формат> Заштитни лист или десним кликом на назив картице Схеет:

Најчешће се ово користи за заштиту „закључаних“ ћелија од уређивања, дозвољавајући само крајњем кориснику да уређује одређене ћелије.

Ћелије можете закључати тако што ћете их изабрати и отворити Картица заштите од Мени за обликовање ћелија (ЦТРЛ + 1).

Такође можете спречити корисника да мења структуру радног листа (уметање, брисање или промену величине редова и колона), нити у интеракцији са аутоматским филтерима и још много тога.

Заштитите радни лист - без лозинке

Можда ћете желети да заштитите радни лист без уноса лозинке. Ово ће спречити случајне промене радног листа, а кориснику ће омогућити приступ да изврши измене по жељи.

1 Радни листови („Лист1“). Заштитите

Заштити радни лист - Заштита лозинком

1 Радни листови („Лист1“). Заштитите „Лозинку“

Заштитите поставке радног листа

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

12345 Радни листови ("Лист 1"). Заштита лозинке: = стрПассворд, ДравингОбјецтс: = Труе, Садржај: = Труе, Сценарији: = Труе, _УсерИнтерфацеОнли: = Тачно, АлловФорматтингЦеллс: = Нетачно, АлловФорматтингЦолумнс: = Нетачно, _АлловФорматтингРовс: = Фалсе, АлловИнсертингЦолумнс: = Фалсе, АлловИнсертингРовс: = Фалсе, _АлловИнсертингХиперлинкс: = Фалсе, АлловДелетингЦолумнс: = Фалсе, АлловДелетингРовс: = Фалсе, _АлловСортинг: = Фалсе, АлловФилтеринг: = Фалсе, АлловУсингПивотТаблес: = Фалсе

Уместо да користите горњу синтаксу, препоручујем снимање макроа са вашим жељеним поставкама (изабраним помоћу менија Заштита радног листа изнад) и копирање + лепљење снимљеног кода у вашу процедуру.

Заштитни лист - Дозволите ВБА -у да врши промене

Подразумевано, када штитите лист, заштита се примењује и на ВБА операције поред радњи корисника. Ако ВБА покуша да измени закључану ћелију, видећете грешку при извођењу 1004. Да бисте то избегли, могли бисте да уклоните заштиту и поново заштитите своје радне листове кад год ВБА треба да ступи у интеракцију са њима:

123456789 Суб Едит_Схеет1 ()'Уклони заштиту са листа1Радни листови („Лист1“). Уклоните заштиту„Учините нешто на листу1'Заштитите лист1Радни листови („Лист1“). ЗаштититеЕнд Суб

Међутим, лако је заборавити да уклоните заштиту и/или поново заштитите своје радне листове. Ово може повећати вероватноћу грешке у кодирању.

Уместо тога, можете користити поставку УсерИнтерФацеОнли. Када је ТРУЕ, радни листови ће бити заштићени САМО од корисника, НЕ од ВБА.Ваш ВБА код ће моћи бесплатно да уређује радни лист, као да је откључан.

Две важне тачке о УсерИнтерФацеОнли:

  • Ово подешавање није доступно у менију Заштита радног листа (приказано горе). То је подешавање које мора бити дефинисано у ВБА.
  • Поставка се не чува када затворите радну свеску. Мора се поново дефинисати сваки пут када се отвара радна свеска.

Дакле, да бисте поставили својство УсерИнтерФацеОнли, требало би да поставите следећу процедуру догађаја Воркбоок_Опен у модул ТхисВоркбоок:

1234567 Привате Суб Воркбоок_Опен ()Дим вс Ас ВорксхеетЗа сваки вс у ТхисВоркбоок.Ворксхеетсвс.Протецт УсерИнтерфацеОнли: = ТачноНект всЕнд Суб

Воркбоок_Опен је посебна процедура догађаја која ће се покретати сваки пут када се радна свеска отвори. Мора се ставити у модул ТхисВоркбоок. Алтернативно, можете користити процедуру догађаја Ауто_Опен (овде није описана).

Уклоните заштиту са свих макроа листова

Овај макро ће уклонити заштиту са свих листова у радној свесци:

123456789 'Уклоните заштиту са свих радних листоваСуб УнПротецтАллСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у радним листовимавс.Унпротецт "пассворд"Нект всЕнд Суб

Заштитите све макрое листова

Овај макро ће заштитити све листове у радној свесци:

123456789 'Заштитите све радне листовеСуб ПротецтАллСхеетс ()Дим вс Ас ВорксхеетЗа сваки вс у радним листовимавс.Заштити "лозинку"Нект всЕнд Суб

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave