Лист снятия защиты VBA

Лист снятия защиты Excel VBA

Бывают ситуации, когда мы защищаем наши рабочие листы, чтобы пользователь не мог манипулировать рабочими листами. При защите рабочего листа мы обычно сохраняем тот же пароль. В этой статье мы покажем вам, как снять защиту с листа с помощью Кодирование VBAКодирование VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее.

VBA-Unprotect-Sheet

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: VBA UnProtect Sheet (wallstreetmojo.com)

Примеры

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

Пример №1

Снять защиту листа на 99 % проще, чем защитить их. Нам просто нужен пароль, чтобы снять защиту листа.

Самое первое, что нам нужно сделать, это указать имя рабочего листа, который мы собираемся снять с защиты. Например, если вы хотите снять защиту с листа «Данные о продажах», ваш код VBA должен быть таким.

Рабочие листы («Данные о продажах»)

Затем получите доступ к методу «Снять защиту».

Лист снятия защиты VBA Пример 1

Как видно на изображении выше, мы не видим никакого списка IntelliSense, который мог бы нам помочь. Это усложняет работу, особенно новичкам.

Чтобы преодолеть это, я обычно полагаюсь на объявление переменной VBAОбъявление переменной VBAОбъявление переменной необходимо в VBA, чтобы определить переменную для определенного типа данных, чтобы она могла хранить значения; любая переменная, не определенная в VBA, не может содержать значения.читать далее как «Рабочий лист».

Код:

Sub Unpretect_Example1()

   Dim Ws As Worksheet

End Sub
Лист снятия защиты VBA Пример 1-1

Теперь установите объявленную переменную на соответствующий лист.

Код:

Sub Unpretect_Example1()

   Dim Ws As Worksheet

   Set Ws = Worksheets("Sales Data")

End Sub
Лист снятия защиты VBA Пример 1-2

Теперь используйте переменную для доступа ко всем свойствам и методам объявленной переменной.

Лист снятия защиты VBA Пример 1-3

Как вы можете видеть на изображении выше, мы можем получить доступ ко всем свойствам и методам. Выберите метод «Снять защиту» из списка IntelliSense.

Лист снятия защиты VBA Пример 1-4

Он запрашивает пароль для снятия защиты листа. Я установил пароль «Excel@1234», поэтому я предоставлю такой же пароль.

Пример 1-5

Это снимет защиту с рабочего листа «Данные о продажах».

Код:

Sub Unpretect_Example1()

   Dim Ws As Worksheet

   Set Ws = Worksheets("Sales Data")

   Ws.Unprotect Password:="Excel@1234"

End Sub

Если пароля нет, то нам достаточно воспользоваться методом «Снять защиту» и игнорировать параметр «Пароль».

Код:

Sub Unpretect_Example1()

   Dim Ws As Worksheet

   Set Ws = Worksheets("Sales Data")
  'Change the worksheet name as per your requirement

   Ws.Unprotect
  'If there is no password just pass "UnProtect" method

End Sub

Если есть какой-либо пароль, то нам нужно ввести пароль в двойных кавычках. Пароль чувствителен к регистру, поэтому внимательно его запомните.

Пример № 2 — снять защиту со всех листов Excel одним щелчком мыши

Мы увидели, как снять защиту с конкретного рабочего листа. Представьте, что у вас много рабочих листов, и все рабочие листы защищены одним и тем же паролем, тогда мы не можем писать коды для каждого рабочего листа отдельно.

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

Приведенный ниже код будет перебирать все рабочие листы и снимать защиту с листа.

Код:

Sub Unpretect_Example2()

   Dim Ws As Worksheet

   For Each Ws In ActiveWorkbook.Worksheets
        Ws.Unprotect Password:="Excel@1234"
        'Change the password as you have mentioned while protecting them.
    Next Ws

End Sub
Пример 1-6

Пример №3 – Особые ситуации

Ситуация 1: Вы когда-нибудь представляли, когда предоставленный пароль неверен. Когда предоставленный пароль неверен, мы получим 1004: Ошибка времени выполнения1004: Ошибка времени выполненияОшибка VBA 1004 — это ошибка времени выполнения в VBA, также известная как ошибка, определяемая приложением или объектом. Поскольку в Excel ограниченное количество столбцов, мы получаем ошибку 1004, когда наш код дает команду выйти за пределы допустимого диапазона.читать далее.

Лист снятия защиты VBA Пример 3-4

Чтобы обработать эти ошибки, мы можем использовать опцию «On Error GoTo Label». Приведенный ниже код является примером того же самого.

Код:

Sub Unpretect_Example3()

  Dim Ws As Worksheet

  For Each Ws In ActiveWorkbook.Worksheets
        On Error GoTo Errormessage
        Ws.Unprotect Password:="Excel@1234"
        'Change the password as you have mentioned while protecting them.
Errormessage:
          MsgBox "Wrong Password"
    Next Ws
End Sub

Приведенный выше код покажет красивое окно с сообщением «Неправильный пароль».

Лист снятия защиты VBA Пример 3-2

Ситуация 2: Когда лист защищен без пароля, и если вы укажете случайный пароль, он все равно снимет защиту листа без каких-либо ошибок.

Ситуация 3: Когда лист защищен паролем, но если вы не укажете какой-либо пароль, VBA появится в качестве поля ввода пароля для ввода пароля.

Пример 3-3

В приведенном выше поле ввода нам нужно ввести наш пароль, чтобы снять защиту с рабочего листа. Если вы нажмете кнопку «Отмена», произойдет выход из подпроцедура VBAПодпроцедура VBASUB в VBA — это процедура, которая содержит весь код, который автоматически дает оператор end sub, а средняя часть используется для кодирования. Оператор Sub может быть как общедоступным, так и частным, а имя подпроцедуры является обязательным в VBA.читать далее ничего не показывая, если только нет окна сообщения пользователя.

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.