Excel 2003 защищенный лист, не позволяющий пользователям Excel 2000 использовать автофильтр

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

У меня есть автофильтр перед применением защиты, поэтому это не проблема, как предлагают многие форумы. Однако я использую Excel 2003, тогда как большинство организаций используют Office 2000. Я не могу не думать, что между двумя системами существует некоторая несовместимость. Кто-нибудь может посоветовать? Макросы VBA на самом деле не подходят, так как в организации по умолчанию установлено, что могут выполняться только подписанные макросы, но даже в этом случае они должны быть проверены конечным пользователем (что очень раздражает пользователей с низким уровнем ИТ-знаний).

Кто-нибудь знает, как сделать эту работу?

3 ответа

Решение

Позволяет ли организация изменять настройки безопасности по умолчанию в Excel для себя и своих пользователей?

Если нет, то вы можете легко создать свою собственную макро-подпись. Я думаю, что это дополнительный компонент установки в Excel, который позволяет создавать подписи на основе вашего ПК или имени пользователя? Это не будет иметь такой же статус, как полная проверенная подпись Microsoft, но в зависимости от настроек организации, это может позволить принять все ваши макросы.

Это сработало для меня несколько лет назад в Excel 2000, но мне все равно приходилось менять настройки безопасности для каждого пользователя. Я думаю, что я также сделал макрос для автоматизации этого изменения в настройках безопасности для каждого пользователя? Если я правильно помню.

Это невозможно без VBA. См. http://office.microsoft.com/en-us/excel-help/enable-autofilter-functionality-for-a-protected-worksheet-HA001098270.aspx

По умолчанию функция автофильтра в Excel становится недоступной при защите части или всей электронной таблицы. Если вы используете Microsoft Office Excel 2003 или Excel 2002, вы можете восстановить эту функцию вручную. Если вы используете Excel 2000, вам нужно использовать несколько строк кода Microsoft Visual Basic® для приложений (VBA).

Используйте код VBA для защиты листа и включения функции автофильтра в Excel 2000

Пример кода, показанный здесь, защищает рабочий лист (не рабочую книгу) и включает функцию автофильтра для этого рабочего листа. Код работает только с Excel 2000. Этот конкретный пример запускается автоматически при открытии книги, содержащей защищенную таблицу. Код также содержит пароль, который вы используете для снятия защиты листа.

Если вы еще этого не сделали, запустите Excel 2000, откройте нужную книгу и запишите имя листа, который вы хотите защитить. В меню "Сервис" выберите "Макрос" и выберите "Редактор Visual Basic".

В Project Explorer дважды щелкните ThisWorkbook.

Новый пустой модуль кода открывается в окне кода.

Скопируйте следующий пример кода и вставьте его в окно кода:

Private Sub Workbook_Open()
     Sheet1.Protect password:="test", DrawingObjects:=True, _
         contents:=True, Scenarios:=True, _
         userinterfaceonly:=True
     Sheet1.EnableAutoFilter = True End Sub

Это решено сейчас. мы все работаем над Office 2010.

Другие вопросы по тегам