Excel VBA Protect Sheet

Защитата на работния лист е важна задача за тези, които работят в Microsoft Excel много често. Това е задача, която трябва да защитите вашия лист от редактиране от някой друг потребител. Да предположим, че изпращате отчет на ръководството и след това ръководството съзнателно или по погрешка променя параметрите или стойностите чрез отчета. Става забързано да идентифицирате грешката, както и в същото време преработката е нещо, което отнема вашето време. За да се преодолее този проблем, винаги е добра практика да се защити лист / и за редактиране с помощта на парола. Тази опция ви помага, като не позволявате на потребителя да прави никакви промени в листа / и. Можете също да споделите паролата с лицето, което е предназначено, както и упълномощено да извършва промените. Въпреки че Excel има опция Protect Worksheet в него чрез раздела „Преглед“, присъстващ в лентата на Excel, той става забързан, когато имате повече от един лист за защита. Това ще отнеме достатъчно от вашето време, защитавайки всеки лист един по един. Вместо това е добра практика да напишете VBA код, който може да защити единични или няколко листа от вашата работна книга за редактиране.

Синтаксис на VBA Protect Sheet

Тази вградена VBA функция, свързана с Работен лист, ви позволява да защитите листа с помощта на парола. Синтаксисът за VBA Protect Sheet функцията е както по-долу:

Всички параметри са незадължителни в тази функция, които можете да познаете през квадратните скоби, споменати за всеки от тях.

  • Парола: Указва парола за листа. Ако не е предоставен, листът ще бъде защитен без парола и потребителят може да го редактира, без да бъде поискан парола.
  • DrawingObjects: Незадължителни аргументи, които ви позволяват да защитите различни форми на работния лист. Приема булеви стойности. По подразбиране е зададено на FALSE.
  • Съдържание: незадължителен аргумент. Защитава всички обекти. По подразбиране стойностите са зададени на TRUE.
  • Сценарии: Защитава всички различни сценарии. Стойността по подразбиране е зададена на TRUE.
  • UserInterfaceOnly: Той защитава потребителския интерфейс, но не и макросите. Стойността по подразбиране е TRUE, ако макросът се игнорира, както и потребителският интерфейс ще бъдат защитени.
  • AllowFormattingCells: Стойността по подразбиране е зададена на FALSE, поради което потребителят не може да форматира клетките на листа. Ако е зададено TRUE, потребителят може да форматира клетките от листа.
  • AllowInsertingColumns: Стойността по подразбиране е зададена на FALSE. Ако е зададен TRUE, потребителят може да вмъкне колона в листа.
  • AllowInsertingRows: Стойността по подразбиране е зададена на FALSE. Ако е зададен TRUE, потребителят може да вмъква редове в листа.
  • AllowInsertingHyperlinks: По подразбиране стойността е зададена на FALSE. Ако е зададен TRUE, потребителят може да вмъква хипервръзки в листа.
  • AllowDeletingColumns: Стойността по подразбиране е зададена на FALSE. Ако е зададен TRUE, потребителят може да изтрие всяка колона от листа.
  • AllowDeletingRows: Стойността по подразбиране е зададена на FALSE. Ако е зададен TRUE, потребителят може да изтрие произволен брой редове от листа.
  • AllowSorting: По подразбиране стойността е зададена на FALSE. Ако е зададен TRUE, потребителят може да сортира данните, налични в листа.
  • AllowFiltering: Стойността по подразбиране е зададена на FALSE. Ако е зададено TRUE, потребителят може да филтрира данните, налични в листа.
  • AllowUsingPivotTables: Стойността по подразбиране е зададена на FALSE. Ако е зададен TRUE, потребителят може да използва и променя въртящите се таблици.

Как да защитим листа в Excel VBA?

По-долу са дадени различните примери за защита на листа в Excel, използвайки VBA Protect.

Можете да изтеглите този шаблон на VBA Protect Sheet Excel тук - VBA Protect Sheet Excel шаблон

VBA Protect Sheet - Пример №1

Да предположим, че в работна книга, наречена „VBA Protect Sheet“, има лист, наречен „Пример 1“. Искаме този лист да бъде защитен с парола. За това следвайте стъпките по-долу:

Стъпка 1: Поставете нов модул в Visual Basic Editor (VBE). Кликнете върху Вмъкване > изберете Модул .

Стъпка 2: Определете нова под-процедура в модула.

Код:

 Под Пример_1 () Край Sub 

Стъпка 3: Сега трябва да използваме функцията Защита, която може да се приложи върху обект, наречен Работен лист. Стартирайте кода с обект Worksheets и въведете името на работен лист в скобите, които искате да бъдат защитени.

Код:

 Под Пример_1 () Работни листове ("Пример 1") Край Под 

Стъпка 4: Сега поставете точка след затварящите скоби и използвайте ключовата дума Protect, която инициира процеса на защита на листа, наречен „ Пример 1 “.

Код:

 Под Пример_1 () Работни листове ("Пример 1"). Защита на крайния Под 

Можете да спрете тук, докато защитавате лист. Тъй като всички аргументи са незадължителни, вашият лист все още ще бъде защитен, но няма да поиска от потребителя да въведе паролата преди редактиране и ще бъде същият като незащитения лист. Със сигурност не бихте искали по този начин. Затова добавете силна парола, за да защитите този лист в следващата стъпка.

Стъпка 5: Въведете ключова дума с парола и използвайте силна парола, за да защитите този лист.

Код:

 Под Пример_1 () Работни листове ("Пример 1"). Защита на паролата: = " " Край на Sub 

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

Стъпка 6: Това е всичко, можете да стартирате този код, като натиснете F5 или Run бутона и можете да видите, че файлът вече е защитен и ще поиска от потребителя паролата веднага щом се опита да редактира някоя от клетките.

Ето как защитаваме лист, използвайки функцията VBA Protect.

VBA Protect Sheet - Пример №2

Сега искаме да защитим всички листове, присъстващи в работна книга. За това следвайте стъпките по-долу:

Стъпка 1: Определете под-процедура в модула.

Код:

 Под Пример_2 () Край Sub 

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

Код:

 Под пример_2 () Dim wrk_sht като Краен работен лист Под 

Стъпка 3: Стартирайте цикъл за For. Този цикъл трябва да работи до последния работен лист на Active Workbook.

Код:

 Под пример_2 () Dim wrk_sht като работен лист за всеки wrk_sht в ActiveWorkbook.Worksheets End Sub 

Този ред код избира всеки работен лист на активната работна книга и го съхранява под променлива wrk_sht за всяка итерация на цикъла. Цикълът приключва веднага след като е избран последният лист на работната книга и се съхранява в променливата wrk_sht. Трябва да определим операция за този цикъл. Със сигурност ще защитава листа с помощта на парола.

Стъпка 4: Сега използвайте функцията Защита, за да защитите листата да се съхраняват под променлива wrk_sht за всяка итерация на цикъл For.

Код:

 Под пример_2 () Dim wrk_sht като работен лист за всеки wrk_sht в ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " End Sub 

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

Код:

 Под пример_2 () Dim wrk_sht като работен лист за всеки wrk_sht в ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " Next End Sub 

Ако стартирате този код, всеки работен лист на активната работна книга ще бъде защитен с парола и трябва да го въвеждате всеки път, когато искате да редактирате листовете.

Неща, които трябва да запомните

  • Препоръчва се да използвате парола, докато защитавате лист. В противен случай потребителят няма да бъде подканен да въведе парола и може директно да редактира файла, въпреки че сте го защитили.
  • Препоръчва се да запомните паролата. В противен случай забравянето на същото никога няма да ви позволи да редактирате файла. Може да се наложи да преминете през различните методи, ако загубите паролата и тези методи са извън обхвата на тази статия.

Препоръчителни статии

Това е ръководство за защитен лист на VBA. Тук обсъждаме как да защитим или заключим листове, използвайки функцията VBA Protect в Excel, заедно с практически примери и шаблон за Excel за изтегляне. Можете да разгледате и другите ни предложени статии -

  1. Как да преименувате лист в Excel VBA?
  2. Стъпки за премахване на защитен лист в Excel
  3. VBA Activate Sheet (Примери с шаблон на Excel)
  4. Как да копирате лист на Excel?

Категория: