Excel VBA запретить удаление ячеек, но разрешить редактирование
Я сделал электронную таблицу, в которой пользователь может ввести почтовый индекс и количество в 2 ячейки, и у меня есть другие ячейки, выполняющие вычисления и отображающие результаты.
Я добавил некоторые VBA, чтобы никто не удалял строки и столбцы, но я хотел бы предотвратить удаление любой ячейки в пределах диапазона, а также позволить пользователю вносить изменения в определенные ячейки, но также предотвратить редактирование ячеек с формулой там.
В ячейке E4 пользователь может ввести почтовый индекс. В E6 пользователь может ввести количество. Их можно редактировать, но не удалять. E8:E9 и E11:E14 — это все выпадающие списки (проверка), которые содержат данные из списков. Они могут быть изменены с помощью выпадающего списка, но не удалены.
L10:L14 , L16 , L23:L27 , L29 , L30:L33 могут быть изменены, но не удалены.
Как будет выглядеть VBA для этого? Я думаю, что он будет использовать Worksheet_Change() event .
Как убрать разметку страницы в Excel 2010 — простые шаги
Чтобы открыть скрытый лист обратно мы также в нижней панели правой кнопкой мыши щелкаем по любому из листов и выбираем команду Показать. В появившемся окне можно посмотреть все невидимые листы книги (даже если он всего один) и выбрать какой именно лист необходимо вывести на экран:
Как убрать разрыв?
Может возникнуть вопрос: а зачем вообще делать такой разрыв? Иногда нужно некоторую часть документа распечатать отдельно от остальных данных. В таком случае может понадобиться разметка страницы в Эксель :
- В верхнем меню Excel переходим на вкладку «Разметка страницы».
- Нажимаем на кнопку «Разрывы» (в разных версиях программы она может располагаться в других местах, но суть от этого не меняется).
- Из раскрывающегося списка выбираем «Вставить…». А если нужно, наоборот, удалить разметку, то кликаем по надписи «Сброс…». Вот наглядный скрин:
Вы могли заметить в меню еще один пункт – «Удалить…». Он устраняет только один разрыв на странице, которая активна (выделена курсором) в данный момент.
Спасибо, это то, что я хочу сделать. А как насчет других диапазонов? Это просто случай нагрузок IF THEN или мы можем использовать CASE и перебирать циклы? – AdRock 2 минуты назад
Как снять защиту с листа Excel |
- Может отобразиться диалоговое окно, где следует отметить галочкой «Больше не показывать…» и сохранить изменения с помощью кнопки ОК.
- Теперь читаем внимательно: для удаления вертикального разрыва, следует выделить весь столбец (кликнуть по соответствующей букве в верхнем ряду), расположенный по правую сторону от линии. Для удаления горизонтальной разметки – выделяем строку (кликнуть по соответствующей цифре в боковом столбце), которая находится ниже линии.
Как проверить, что защита снята? Для этого посмотрите на кнопку, которую вы только что нажали – вы увидите другую надпись: «Защитить лист». Это очень удобно – вы можете постоянно блокировать и разблокировать лист.
Вариант 2: Меню «Проверка вводимых значений»
Если ранее вы самостоятельно создавали раскрывающийся список, то уже знаете, через какое именно меню это делается. Его можно использовать и для очистки данных, удалив все значения кроме выбранного. Это отличный вариант в тех случаях, когда нужно сохранить текущее число или текст в ячейке, но удалить все остальные варианты списка.
Выделите список левой кнопкой мыши, перейдите на вкладку «Данные» и откройте окно «Проверка данных».
Слева внизу вы увидите кнопку «Очистить все», которая и удаляет все выставленные условия проверки, то есть в данном случае – выпадающий список.
Теперь вы увидите, что тип данных изменился на «Любое значение» и пропала строка со значениями списка.
Вернитесь к таблице и проверьте результативность выполненных действий.
Как снять защиту с листа Excel: 4 способа
По работе приходится часто выгружать данные в Excel формате. При большом количестве строк и формул этот процесс достаточно длительный. Решил написать для своих целей небольшую библиотечку для выгрузки данных. Используется технология open-xml. Никаких библиотек не надо, пишу напрямую в xml файлики. На данном этапе сделано форматирование, формулы.
Способ 2: Разблокируем отдельный лист
Второй вариант, когда блокировка висит именно на выделенной странице. Причем блокировку мог установить сам автор, чтобы нечаянно не изменить некоторые данные (сам так частенько делаю). Зайдите на вкладку «Рецензирование» и в разделе «Изменения» (справа) находим кнопку с надписью «Снять защиту листа».
Второй вариант – это нажать «Файл», как мы это делали в первом способе. Далее открыть меню «Защиты книги» и выбрать пункт «Защитить текущий лист».
Далее очень важный момент. Если вы или автор документа установили пароль, то вылезет вот такое вот окошко – нужно просто ввести ключ. Но защиту на лист можно устанавливать и без пароля. В таком случае блокировка снимется, но вы визуально ничего не заметите.
ПРИМЕЧАНИЕ! Если вы не помните пароль, то смотрим следующую инструкцию.
Как проверить, что защита снята? Для этого посмотрите на кнопку, которую вы только что нажали – вы увидите другую надпись: «Защитить лист». Это очень удобно – вы можете постоянно блокировать и разблокировать лист.
Удаление из файла эксель ненужных страниц средствами 1С без COM и через COM
- В первом разделе «Сведения» выбираем кнопку в подразделе «Защита книги» (значок замочка и ключика). После этого из списка кликаем «Зашифровать с использованием пароля». В более старых версиях Microsoft Word пункт называется: «Зашифровать паролем».
Детальную информацию о том, как производится создание раскрывающегося списка, вы найдете в другой статье. Она пригодится, если вдруг после удаления одного перечня вы задумали создать другой, с отличающимися или такими же значениями.