Защитить закрытую книгу паролем - PullRequest
2 голосов
/ 06 мая 2020

Я искал, но не нашел способа установить внешний пароль для закрытой книги. Предположим, я закрыл книгу с именем «Sample.xlm» ... и открываю книгу с именем «Test.xlm». Есть ли код, который позволяет мне ввести пароль в Sample.xlsm? Я имею в виду внешний пароль. Я попробовал следующее, но получил ошибку (метод защиты книги объекта не удался)

Sub Test()
    Dim wb As Workbook

    Set wb = Workbooks.Open(ThisWorkbook.Path & "\Sample.xlsm")
    wb.Protect Password:="123"
    wb.Close True
End Sub

** Я защищал образец книги с помощью Protect and Share Workbook и перешел на UnShare. Это была проблема появившейся ошибки.

Теперь код работает, но при открытии рабочей книги Sample после запуска кода я обнаружил, что он незащищен. Я рассчитываю на его защиту.

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

Спасибо за помощь

enter image description here

Размещено тоже здесь https://www.mrexcel.com/board/threads/set-password-to-closed-workbook.1133150/

1 Ответ

3 голосов
/ 06 мая 2020

Вы ищете Workbook.SaveAs - один из необязательных параметров, Password, будет делать то, что вам нужно ... но вам нужно сначала открыть книгу - и как с любой код, связанный с файловой системой, нам нужно обрабатывать ошибки здесь:

    On Error GoTo CleanFail
    Application.DisplayAlerts = False
    Dim path As String
    path = ThisWorkbook.Path & "\Sample.xlsm"
    With Workbooks.Open(path)
        .SaveAs path, Password:="P@$$w0rd"
        .Close
    End With
CleanExit:
    Application.DisplayAlerts = True
    Exit Sub
CleanFail:
    Debug.Print Err.Description
    Resume CleanExit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...