Как избежать чтения скрытых строк / столбцов Excel?

У меня есть файл Excel с большим рабочим листом, который часто обновляется и отправляется.

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

Однако пользователь все еще может прочитать скрытую часть, скопировав и вставив содержимое на другой лист, или используя формулу, такую ​​как

='ProtectedSheet'!J9

где J9 - скрытая ячейка.

Я знаю, что у каждой стены есть способ прорваться, но все же есть ли способ защитить содержимое скрытой ячейки Excel от (простого) считывания "обычным" пользователем?

2 ответа

Решение

Разложите вспомогательные ячейки вычислений на совершенно другой лист. Затем скройте этот лист или используйте VBA, чтобы сделать его "очень скрытым", что означает, что его нельзя скрыть через пользовательский интерфейс.

Это цитата из статьи Джона Уокенбаха http://j-walk.com/ss/excel/usertips/tip036.htm

  • Нажмите Alt-F11 для отображения редактора Visual Basic
  • в окне "Проект" дважды щелкните объекты Microsoft Excel и выберите лист, который необходимо скрыть.
  • Нажмите F4, чтобы отобразить окно свойств
  • Установите для свойства Visible листа значение xlSheetVeryHidden.

Чтобы отобразить лист, повторите эти шаги, но установите для свойства Visible значение xlSheetVisible.

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

Имейте в виду, что защита паролем Excel никогда не бывает абсолютно безопасной. Пароли рабочего листа снимаются с охраны в течение 2 секунд. В зависимости от версии Excel пароли к рабочим тетрадям и пароли VBA могут быть обойдены с небольшим усилием, если на них будет направлено достаточно вредоносной энергии.

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

Тем не менее, вот несколько примеров того, как вы можете отговорить людей от подробностей:

  1. Задайте для свойств этих ячеек значение Скрытый (Формат ячеек...| Защита | Скрытый, который скрывает формулы, которые генерировали значение в ячейке при его защите; и
  2. Когда вы защищаете лист, снимите флажок "выбрать заблокированные ячейки", что не позволит кому-либо выбрать ячейку, если он ее покажет, и попытается использовать ее в формуле. Это не помешает кому-либо вручную ввести ссылку на ячейку, но это сделает ее более трудной.
Другие вопросы по тегам