Как защитить или заблокировать значения ячеек на основе цвета фона?
Допустим, у меня есть большой лист, и множество ячеек заполнены разными цветами фона. Теперь я хочу заблокировать или защитить ячейки на основе определённого цвета заливки — например, все ячейки с красным фоном. Существуют ли эффективные способы выполнить эту задачу в Excel?
Защита или блокировка значений ячеек на основе Цвет фона с помощью кода VBA
Защита или блокировка значений ячеек на основе Цвет фона с помощью кода VBA
Например, вы хотите заблокировать и защитить все красные ячейки, чтобы другие пользователи не могли изменять их значения. Следующий код VBA поможет вам решить эту задачу. Выполните следующие действия:
1. Удерживая нажатыми клавиши ALT + F11, откройте окно Microsoft Visual Basic для приложений.
2. Нажмите Вставка > Модуль и вставьте приведённый ниже код в окно Модуля.
Код VBA: защита или блокировка значений ячеек на основе цвета:
Sub lockcellsbycolor()
'Updateby Extendoffice
Dim colorIndex As Integer
colorIndex = 3
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In ActiveSheet.UsedRange.Cells
Dim color As Long
color = xRg.Interior.colorIndex
If (color = colorIndex) Then
xRg.Locked = True
Else
xRg.Locked = False
End If
Next xRg
Application.ScreenUpdating = True
MsgBox "All specified color cells have been locked!", vbInformation, "Kutools for Excel"
End Sub
Примечание: в приведённом выше коде число 3 внутри строки colorIndex = 3 обозначает ячейки красного цвета, которые необходимо заблокировать. Вы можете заменить его на другой код цвета, который хотите заблокировать.
3. Затем нажмите клавишу F5, чтобы запустить этот код. В результате будут заблокированы только ячейки красного цвета, а все остальные ячейки в используемом диапазоне текущего листа останутся разблокированными (см. скриншот):

4. Если вы хотите защитить их от изменений другими пользователями, просто примените функцию Защита листа, чтобы защитить этот рабочий лист.
Совет: чтобы получить номер Код цвета, вы можете использовать следующую пользовательскую функцию:
Function GetColor(x As Range) As Integer
GetColor = x.Interior.ColorIndex
End Function

Раскройте магию Excel с помощью KUTOOLS AI
- Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
- Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
- Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
- Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
- Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Лучшие инструменты повышения продуктивности в 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-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек