В защищенном файле Excel пропадают фильтры

Надоела ситуация, когда при очередном открытии документа Excel постоянно пропадают фильтры с защищенного листа. Естественно их не могут вернуть рядовые пользователи (пароль-то зачем им знать?)

Решил в очередной раз «по-гуглить». И вот что нарыл


http://access-excel.tips/excel-vba-protect-worksheet-with-password
https://www.planetaexcel.ru/techniques/5/64/
http://msoffice-nm.ru/faq/macros/filters.htm

Свел эти данные и получилось вот такое:

If Worksheets(3).AutoFilterMode = True Then
MsgBox «Автофильтр установлен»
Else
Sheets(«Лист1″).Unprotect Password:=»pass»
Sheets(«Лист1»).Range(«A1»).AutoFilter

Sheets(«Лист1″).Protect Password:=»pass», AllowFiltering:=True
End If

Вот как-то так. В общем-то от первой проверки с выводом сообщения можно и отказаться.

UPD:

Решено добавить опцию AllowFormattingCells:=True, т.к. понадобилось разрешение на условное форматирование в рамках поиска повторных записей (оно не всегда работает корректно)

UPD 2:

Дополню еще одним параметром «AllowFormatingRows» — разрешение на форматирование строк. Его нужно выставить ранее параметра форматирования ячеек, иначе макрос останавливает свою работу и не устанавливает защиту на лист. Кто знает в чем их логика?

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.