Книга VBA Excel заблокирована при попытке защитить ее с использованием неверного синтаксиса vba - PullRequest
0 голосов
/ 21 апреля 2020

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

метод, который я использовал

ActiveWorkbook.Protect Password = "a"

вместо

ActiveWorkbook.Protect Password:= "a"

Я прилагаю пример рабочей книги, чтобы лучше объяснить проблему. https://www.dropbox.com/s/j9gbs653c3ekljq/vbaprotect-unprotect.xlsm?dl=0

С уважением, Сушант

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Если вы использовали

ActiveWorkbook.Protect Password = "a"

для защиты своей книги, тогда ваш пароль - False, поскольку Password - пустая переменная и, следовательно, это не a, поэтому Password = "a" будет оцениваться как False.

Поэтому

ActiveWorkbook.Unprotect Password:="False"

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

ActiveWorkbook.Unprotect Password = "a"

Альтернатива запущена эта строка кода в VBA в вашей книге.

ThisWorkbook.Worksheets(1).Cells(1, 1).Value(11) = ThisWorkbook.Worksheets(1).Cells(1, 1).Value(11)

Из-за ошибки в Excel она полностью отключит защиту без необходимости знать пароль.

0 голосов
/ 21 апреля 2020

Что вы можете сделать, это изменить тип файла с «.xlsm» на «.zip». Затем вы открываете zip-файл и находите «xl / workbook. xml». Откройте файл, найдите и удалите раздел workbookProtection файла xml. Это будет выглядеть следующим образом.

<workbookProtection lockStructure="1" workbookSpinCount="100000" workbookSaltValue="toN4kCMV7rKY3ILzsrftPA==" workbookHashValue="3fup/MHNNDJdbhPyerFBJtGVu1ymCUX4Gq1vSRd6x7nUQey6orASofK+Fp/kaNjErr5VMZekaGG5m+Q9bpHPDg==" workbookAlgorithmName="SHA-512"/>

(Просто удалите все из <в /> раздела)

Сохраните файл workbook.xlm в папке zip. Закройте zip и измените тип файла обратно на «.xlsm», и защита вашей книги исчезла.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...