Защита листов от удаления (Microsoft Excel)
У Криса есть рабочая книга, состоящая из двух контрольных листов, содержащих данные настройки. Пользователь книги запускает макросы, которые создают много новых листов в книге. Затем пользователь удаляет все ненужные листы. Крис хочет убедиться, что два контрольных листа не были удалены по ошибке.
В некоторой степени этого можно достичь, защищая структуру книги, как описано в других ExcelTips. Это защищает структуру книги от изменений, так что пользователь не может добавлять или удалять рабочие листы. Поскольку вы хотите, чтобы пользователь мог добавлять и удалять рабочие листы, вам нужно будет внести два изменения в способ использования книги:
-
Измените макрос, который добавляет листы, так, чтобы он удалял защиту книги перед добавлением листов, а затем восстанавливал защиту после добавления листов.
-
Добавить функцию макроса, которая удаляет листы. Макрос может проверить, не пытается ли пользователь удалить контрольные листы.
Если пользователь может удалить определенный рабочий лист, макрос снимет защиту книги, удалит лист, а затем восстановит защиту.
Другой подход — создать дубликаты контрольных листов в книге. Сделайте рабочие листы скрытыми, это в определенной степени защитит их. Затем ваши макросы могут проверить, не были ли удалены не скрытые контрольные листы. В противном случае макрос мог бы создать другой контрольный лист, скопировав скрытую версию контрольных листов.
Еще один подход — изменить макрос, который в настоящее время добавляет в книгу несколько листов. Модификация создаст «резервную» книгу, содержащую листы управления. Позже, перед закрытием книги, можно вызвать макрос, который проверяет контрольные листы. Если их нет, макрос копирует их из резервной книги. Если они есть, то книгу резервного копирования можно удалить.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (11651) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Protecting_Worksheets_from_Deletion [Защита рабочих листов от удаления]
.