Остановка удаления ячеек (Microsoft Excel)
Вилас знает, что он может защитить лист, чтобы пользователи не могли удалять ячейки. Однако у него есть необходимость предотвратить удаление ячеек без использования защиты рабочего листа. (Вилас говорит не об очистке содержимого ячеек, а о фактическом удалении ячеек, так что окружающие ячейки должны перемещаться влево или вверх.) Он задается вопросом, есть ли способ предотвратить удаление пользователем ячеек без защиты рабочего листа.
В Excel нет прямого способа сделать это. Было бы неплохо, если бы Excel предоставил способ создания обработчика событий, который вызывается всякий раз, когда ячейка удаляется, но это не так. (Событие Worksheet_Change, по-видимому, запускается всякий раз, когда изменяется содержимое ячейки, но не когда ячейка полностью удаляется.) Из-за этого использование макроса для защиты ваших ячеек от удаления — не лучший вариант.
Лучшее решение, которое мы смогли найти, включает в себя использование причуды того, как Excel обрабатывает формулы массива. В качестве примера предположим, что у вас есть данные в диапазоне A1: L37, и вы не хотите, чтобы какие-либо ячейки в этом диапазоне удалялись. Выполните следующие общие шаги:
-
Выберите диапазон ячеек справа от вашего блока, который вы хотите защитить. В этом случае выберите ячейки M1: M37.
-
Введите = «» и нажмите Shift + Ctrl + Enter. Теперь вы создали формулу массива, не требующую действий, которая принимает весь диапазон M1: M37.
-
Выделите диапазон ячеек прямо под блоком ячеек, который вы хотите защитить. В этом случае выберите ячейки A38: L38.
-
Введите = «» и нажмите Shift + Ctrl + Enter. Итак, вы создали формулу массива, не требующую действий, которая принимает весь диапазон A38: L38.
На этом этапе вы не можете удалить какую-либо ячейку в блоке данных (A1: L37), а также не можете удалить строки с 1 по 37 или любой столбец с A по L.
При каждой попытке Excel отображает сообщение «Вы не можете изменить часть массива». Единственный способ удалить ячейки, строки или столбцы в блоке данных — сначала избавиться от формул массива, которые могут быть затронуты. Другими словами, вам нужно сначала удалить столбец M или строку 38.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (10256) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Stopping_the_Deletion_of_Cells [Остановка удаления ячеек]
.