Когда вы защищаете рабочий лист, Excel не позволяет пользователям выполнять широкий спектр задач с данными на листе. Одна из вещей, которую пользователь больше не может делать, — это сортировать данные. Что, если вы хотите, чтобы пользователь мог сортировать данные, но при этом оставил лист защищенным?

Если вы используете Excel 2002 или Excel 2003, ответ довольно прост:

Эти версии Excel позволяют указать, что пользователи могут и не могут делать с защищенным листом. Когда вы выбираете Инструменты | Защита | Защитить лист, Excel отображает диалоговое окно «Защитить лист». Внизу диалогового окна находится длинный список флажков. Все, что вам нужно сделать, это выбрать, что пользователь должен иметь возможность делать с листом. Один из вариантов (нужно немного прокрутить вниз) — Сортировка. Если вы выберете эту опцию, то пользователи смогут сортировать защищенные данные.

Если вы используете старую версию Excel, решение состоит в том, чтобы создать макрос, который снимает защиту листа, сортирует данные, а затем снова защищает лист. Ниже приводится простой пример:

Sub Sorting()

ActiveSheet.Unprotect     Range("A1:D100").Sort Key1:=Range("A1"), _       Order1:=xlAscending, Header:=xlGuess, _       OrderCustom:=1, MatchCase:=False, _       Orientation:=xlTopToBottom     ActiveSheet.Protect End Sub

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

Если вы выбираете маршрут макроса, вам нужно назначить макрос либо кнопке панели инструментов, либо команде меню. Если вы этого не сделаете, пользователь никогда не сможет его использовать, поскольку в защищенном документе меню макросов отключены.

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2458) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Sorting_Data_on_Protected_Worksheets [Сортировка данных на защищенных листах].