VBA Protect Sheet - Защитете с парола Excel лист с помощта на VBA

Защитен лист на Excel VBA

Можем да защитим Excel листа, използвайки vba код, който не позволява на потребителя да прави промени в данните на работния лист, всичко, което могат да направят, е само да прочете отчета. За това имаме вграден vba метод, наречен „Защита“.

Както защитаваме работните си листове в Excel, по подобен начин можем да използваме VBA, за да защитим нашите работни листове, това се прави с помощта на .protect оператор, има два метода за защита на листа, единият е с парола, а другият е без парола, синтаксисът за защита работен лист е както следва Работни листове (). Защита на паролата.

Обикновено споделяме окончателния краен отчет с потребителя или читателя. Когато споделяме окончателния краен отчет с потребителя, желаем потребителят да не прави никакви промени или да манипулира крайния отчет. При такъв сценарий всичко е свързано с доверието, нали?

Синтаксис

Защитният лист включва различни параметри за подаване. Това е различно от премахването на защитата на листа. Нека разгледаме синтаксиса на метода Protect с парола.

Еха!!! Не се плашете, гледайки синтаксиса. Погледнете обяснението на всеки аргумент по-долу.

  • Име на работния лист: Първо, трябва да споменем кой работен лист ще защитим.
  • Парола: Трябва да въведем паролата, която използваме за защита. Ако пренебрегнем този параметър, Excel ще заключи листа без парола и докато премахва защитата на листа, той ще премахне защитата, без да иска парола.
  • Забележка: Запомнете паролата, която давате, защото ако сте забравили, трябва да преминете през различни трудни начини.
  • Рисуване на обект: Ако искате да защитите обекти в работния лист, тогава можете да предадете аргумента като TRUE или FALSE. Стойността по подразбиране е TRUE.
  • Съдържание: За да защитите съдържанието на работния лист, задайте параметъра като TRUE или иначе FALSE. Стойността по подразбиране е FALSE. Това ще защити само заключените клетки. Стойността по подразбиране е TRUE.
  • Сценарии: Ако в сценариите на excel има какъвто и да е анализ, можем да ги защитим и тях. За защита на TRUE или иначе FALSE. Стойността по подразбиране е TRUE.
  • Само потребителски интерфейс: Ако искате да защитите потребителския интерфейс, различен от макроса, той трябва да е ИСТИНСКИ. Ако този аргумент е пропуснат, той ще защити както макросите, така и потребителския интерфейс. Ако зададете аргумента на TRUE, той ще защити само потребителския интерфейс. Стойността по подразбиране е FALSE.
  • Разрешаване на форматиране на клетки: Ако искате да разрешите на потребителя да форматира клетката, тогава можете да зададете параметъра на TRUE или FALSE. Стойността по подразбиране е FALSE.
  • Разрешаване на форматиране на колони: Ако искате да разрешите на потребителя да форматира която и да е колона в защитения лист, тогава можете да зададете параметъра на TRUE или FALSE. Стойността по подразбиране е FALSE.
  • Разрешаване на форматиране на редове: Ако искате да разрешите на потребителя да форматира всеки ред в защитения лист, тогава можете да зададете параметъра на TRUE или FALSE. Стойността по подразбиране е FALSE.
  • Разрешаване на вмъкване на колони във VBA: искате да разрешите на потребителя да вмъква нови колони, след което трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на вмъкване на редове: Ако искате да разрешите на потребителя да вмъква нови редове, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на вмъкване на хипервръзки: Ако искате да разрешите на потребителя да вмъква хипервръзки, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на изтриване на колони: Ако искате да разрешите на потребителя да изтрива колони във VBA, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на изтриване на редове: Ако искате да разрешите на потребителя да изтрива редове, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на сортирането: Ако искате да разрешите на потребителя да сортира данните, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на филтриране: Ако искате да разрешите на потребителя да филтрира данните, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.
  • Разрешаване на използването на обобщени таблици : Ако искате да разрешите на потребителя да използва обобщени таблици, тогава трябва да зададете това на TRUE. Стойността по подразбиране е FALSE.

Как да защитя лист чрез VBA код?

Стъпка 1: Изберете лист, който трябва да бъде защитен

За да защитим листа, първата стъпка е да решим кой лист трябва да защитим с помощта на парола и трябва да извикаме листа с името му, като използваме VBA Worksheet Object.

Например, приемете, че искате да защитите листа с име „Основен лист“, тогава трябва да споменете името на работния лист, както е показано по-долу.

Стъпка 2: Определете променливата на работния лист

След като споменете името на работния лист, поставете точка, но не виждаме списък с IntelliSense, с който да работим. Това затруднява работата. За да получите достъп до списъка IntelliSense, дефинира променливата като работен лист.

Код:

Sub Protect_Example1 () Dim Ws As Worksheet End Sub

Стъпка 3: Дайте справка за работния лист

Сега задайте препратката към работния лист към променливата като Работни листове („Основен лист“) .

Код:

Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Master Sheet") End Sub

Сега променливата „Ws“ съдържа препратката към работния лист, наречен „Основен лист“. Използвайки тази променлива, можем да получим достъп до списъка IntelliSense.

Стъпка 4: Изберете Защитен метод

Изберете метода “Protect” от списъка IntelliSense.

Стъпка 5: Въведете парола

Посочете паролата в двойни кавички.

Код:

Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Master Sheet") Ws.Protect Password: = "MyPassword" End Sub

Стъпка 6: Стартирайте кода

Стартирайте кода ръчно или с помощта на клавишната комбинация F5, след което той ще защити листа, наречен „Основен лист“.

Когато листът е защитен, ако искаме да направим някаква модификация, той показва съобщение за грешка, както е показано по-долу.

В случай, че искате да защитите повече от един лист, тогава трябва да използваме цикли. По-долу е примерен код за защита на листа.

Sub Protect_Example2 () Затъмняване на Ws като работен лист за всеки Ws в ActiveWorkbook.Worksheets Ws.Protect Password: = "My Passw0rd" Next Ws End Sub

Забележка: Използвайте други параметри, за да експериментирате.

Интересни статии...