Excel VBA Снять защиту с листа

У нас есть опция в Excel, с помощью которой мы можем защитить листы и файлы Excel от удаления, переименования и сохранения данных от любых других изменений, которые не требуются. Этот параметр называется « Защитить лист» и « Защитить книгу», который находится в разделе « Изменения » на ленте меню « Просмотр» . Мы можем установить пароль, с помощью которого мы можем сохранить выбранный лист от любых изменений. Но то, что я говорю, это также может быть автоматизировано с использованием кода VBA. Да, мы можем создать код или макрос, с помощью которого мы можем автоматически заблокировать лист и рабочую книгу. Но эта статья посвящена снятию защиты с листа.

Снятие защиты листа также довольно простой процесс, как защита листа. Чтобы снять защиту листа, нам нужно ввести пароль, который мы использовали при блокировке этого листа. Чтобы снять защиту листа, нам просто нужно выбрать имя листа и функцию Unprotect . Если это доступно в VBA, то это просто однострочный код. Но если это не так, то нам нужно искать другой способ сделать это, что мы увидим в следующих примерах.

Как снять защиту с листа в Excel VBA?

Мы узнаем, как снять защиту с листа в Excel, используя код VBA.

Вы можете скачать этот шаблон Excel для защиты листа VBA здесь - Шаблон Excel для защиты листа VBA

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

Сначала мы увидим простой пример снятия защиты с листа. Для этого выполните следующие действия:

Шаг 1: Сначала откройте модуль на вкладке меню «Вставка», как показано ниже.

Шаг 2: Теперь напишите подпроцедуру листа VBA Unprotect. Или мы можем выбрать любое другое имя, чтобы определить его.

Код:

 Sub VBA_Unprotect () End Sub 

Шаг 3: Определите переменную с именем Worksheet под любым именем. Предпочтительно имя, которое напоминает рабочий лист, такой как ExSheet

Код:

 Sub VBA_Unprotect () Dim ExSheet As Worksheet End Sub 

Шаг 4: Теперь затем установите определенную переменную рабочего листа с именем листа, который мы хотим снять с защиты. Здесь имя этого листа - Sheet1 .

Код:

 Sub VBA_Unprotect () Dim ExSheet As Set Worksheet ExSheet = Worksheets ("Sheet1") End Sub 

Шаг 5: Теперь назначьте функцию Unprotect, которая есть в раскрывающемся списке VBA, переменной ExSheet рабочей таблицы .

Код:

 Sub VBA_Unprotect () Dim ExSheet As Set Worksheet ExSheet = Worksheets ("Sheet1") ExSheet.Unprotect End Sub 

Шаг 6: Теперь дайте пароль, который мы дали для блокировки этого листа. Здесь этот пароль «Open1212». И это может быть все, что зависит от выбора пользователя.

Код:

 Sub VBA_Unprotect () Dim ExSheet As Set Worksheet Set ExSheet = Worksheets ("Sheet1") ExSheet.Unprotect Password: = "Open1212" End Sub 

Шаг 7: Теперь сначала мы защитим Sheet1, нажав на вкладку меню Review и выбрав опцию Protect Sheet .

Шаг 8: Введите пароль, который мы хотим, и нажмите Ok, чтобы защитить лист.

Шаг 9: Введите пароль еще раз для подтверждения.

Шаг 10: Как только мы это сделаем, мы увидим, что мы ничего не можем изменить в этом листе, даже если мы попытаемся это сделать. Теперь, чтобы снять защиту листа, мы скомпилируем наш написанный код и запустим его.

Мы увидим, как только наш код будет выполнен, мы теперь можем вносить любые изменения в Sheet1 .

Шаг 11: Что если мы удалим или изменим строку кода, в которую мы вставили пароль, и сделаем так, чтобы функция Unprotect работала, как показано ниже. Посмотрим, что будет, если мы так сделаем.

Код:

 Sub VBA_Unprotect () Dim ExSheet As Set Worksheet ExSheet = Worksheets ("Sheet1") ExSheet.Unprotect End Sub 

Шаг 12: Теперь снова запустите полный код. Посмотрим, появится сообщение, в котором будет предложено ввести пароль. Введите здесь пароль, который мы выбрали при защите листа, и нажмите ОК.

Также с помощью этого процесса мы можем снять защиту листа, который мы хотим.

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

Есть еще один способ снять защиту с листа. Это самый простой и простой способ сделать это. Для этого выполните следующие шаги:

Шаг 1: Запишите подпроцедуру для VBA Unprotect, как показано ниже.

Код:

 Sub VBA_Unprotect2 () End Sub 

Шаг 2: Используйте функцию «Рабочие листы» и выберите лист, который мы хотим снять с защиты. Здесь снова этот лист - Sheet1 .

Код:

 Sub VBA_Unprotect2 () Рабочие таблицы ("Sheet1") End Sub 

Шаг 3: Подобным образом, как показано в примере-1, мы будем использовать команду Unprotect вместе с паролем, который мы использовали при блокировке листа. Здесь наш пароль для снятия защиты также совпадает с « Open1212 ».

Код:

 Sub VBA_Unprotect2 () Рабочие таблицы ("Sheet1"). Снять защиту с пароля: = "Open1212" End Sub 

Теперь наш код завершен. Чтобы проверить это, сначала защитите лист так же, как мы это делали в примере-1, и запустите этот код, чтобы снять защиту.

VBA Unprotect Sheet - Пример № 3

Что если я скажу, мы снова можем написать код, в котором нам не нужно выбирать имя листа, который мы хотим снять с защиты. Да, это можно сделать с помощью цикла. Для этого выполните следующие шаги:

Шаг 1: Снова для этого откройте Модуль и напишите подпроцедуру листа VBA Unprotect, как показано ниже.

Код:

 Sub VBA_Unprotect3 () End Sub 

Шаг 2: Используйте DIM, чтобы определить переменную для Worksheet как Exsheet. Это та же самая строка, которую мы использовали в приведенных выше примерах.

Код:

 Sub VBA_Unprotect3 () Dim ExSheet As Worksheet End Sub 

Шаг 3: Откройте цикл For-Next, где мы будем записывать условия защиты листа.

Код:

 Sub VBA_Unprotect3 () Dim ExSheet как рабочий лист для следующего ExSheet End Sub 

Шаг 4. Запишите условие для каждой открытой активной рабочей книги и выберите текущую активную рабочую таблицу, как показано ниже.

Код:

 Sub VBA_Unprotect3 () Dim ExSheet как рабочий лист для каждого ExSheet в ActiveWorkbook. Рабочие листы Next ExSheet End Sub 

Шаг 5: Теперь аналогично тому, как показано в приведенных выше примерах, мы будем использовать определенные переменные вместе с функцией Unprotect, чтобы снять защиту листа. Здесь также мы можем или не можем использовать пароль. Это необязательный способ.

Код:

 Sub VBA_Unprotect3 () Dim ExSheet как рабочий лист для каждого ExSheet в ActiveWorkbook.Worksheets ExSheet.Unprotect Password: = "Open1212" Next ExSheet End Sub 

Скомпилируйте код и запустите, если ошибки не найдены.

Вот как мы можем снять защиту с любого открытого текущего рабочего листа, даже не выбрав имя и последовательность этого. Этот код автоматически учитывает тот лист, который в данный момент выбран и открыт.

Плюсы Excel VBA Снять защиту листа

  • Вышеуказанные процессы и примеры являются наиболее простыми в применении.
  • Мы можем снять защиту листа обоими способами, указав сам пароль в коде или не указав пароль.
  • Это работает так же, как мы вручную снимаем защиту листа.

То, что нужно запомнить

  • Поскольку процесс довольно прост в реализации, автоматизация может не привести к каким-либо улучшениям.
  • Мы можем менять пароль каждый раз, когда мы переделываем процесс защиты и снятия защиты с листа.
  • Мы можем выбрать имя листа или последовательность листа, который мы хотим снять защиту.
  • И когда это будет сделано, сохраните код в Macro, включите лист Excel, чтобы защитить код VBA от потери.

Рекомендуемые статьи

Это руководство по VBA Unprotect Sheet. Здесь мы обсудим, как снять защиту листа в Excel, используя код VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Открытая переменная VBA (примеры)
  2. Номер формата VBA с функцией
  3. VBA вариант с типами данных
  4. VBA Рандомизировать | Шаблоны Excel
  5. VBA Environ

Категория: