Как заблокировать или защитить ячейки в Excel после ввода данных?
Предположим, у вас есть лист, и только определённый диапазон пустых ячеек требует ввода данных. После завершения ввода необходимо, чтобы эти ячейки автоматически блокировались, чтобы предотвратить повторное изменение. Как этого добиться? Эта статья поможет вам.
Блокировка или защита ячеек после ввода данных с помощью кода VBA
Блокировка или защита ячеек после ввода данных с помощью кода VBA
Например, у вас есть определённый диапазон пустых ячеек — A1:F8. Выполните следующие действия, чтобы заблокировать эти ячейки в Excel после ввода данных.
1. Сначала разблокируйте этот диапазон: выделите ячейки, щёлкните правой кнопкой мыши и выберите Установить формат ячейки в контекстном меню, затем в диалоговом окне Установить формат ячейки снимите флажок «Защита» на вкладке «Защита» и нажмите кнопку «ОК». См. скриншот:

2. Перейдите на вкладку «Рецензирование», затем нажмите «Защитить лист». Укажите пароль для защиты этого листа.
3. Щёлкните правой кнопкой мыши по ярлыку листа и выберите в контекстном меню пункт «Просмотреть код». Затем скопируйте приведённый ниже код VBA и вставьте его в окно редактора кода. См. скриншот:
Код VBA: блокировка или защита ячеек после ввода данных
Dim mRg As Range
Dim mStr As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Set xRg = Intersect(Range("A1:F8"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="123"
If xRg.Value <> mStr Then xRg.Locked = True
Target.Worksheet.Protect Password:="123"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub 
Примечание: в коде «A1:F8» — это диапазон, куда нужно вводить данные, а «123» — пароль для защищённого листа. При необходимости замените их.
4. Нажмите клавиши Alt+Q одновременно, чтобы закрыть окно «Microsoft Visual Basic for Applications».
После завершения ввода данных в ячейки диапазона A1:F8 они автоматически блокируются. При попытке изменить содержимое любой ячейки этого диапазона появится предупреждающее диалоговое окно. См. скриншот:

См. также:
- Как быстро заблокировать все ссылки на ячейки в формулах одновременно в Excel?
- Как заблокировать или разблокировать выбор ячейки в Excel на основе значения в другой ячейке?
- Как привязать изображение или картинку к ячейке (или разместить её внутри ячейки) в Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек