Данный пример защищает каждую ячейку в листе и, если ячейка не содержит формулы, дату или текст и ячейка в числовом формате, то снимает защиту и устанавливает цвет текста синим. Для всех остальных устанавливается черный цвет. Этот пример может быть использован для разрешения редактирования чисел, но запрещение на редактирование текста, дат и формул. Sub Set_Protection() On Error GoTo errorHandler'Установка хендлера ошибки Dim myDoc As Worksheet'Объявление объектной переменной типя Лист Dim cel As Range'Объявление переменной диапозона Set myDoc = ActiveSheet'Инициализация myDoc.UnProtect'Снятие защиты с листа, для того, что бы мы смогли его редактировать For Each cel In myDoc.UsedRange'Цикл If Not cel.HasFormula And _'Проверка на содержание формулы в ячейке Not TypeName(cel.Value) = "Date" And _'Проверка на содержание даты в ячейке Application.IsNumber(cel) Then'Если формат ячейки числовой, то cel.Locked = False'Снимаем защиту cel.Font.ColorIndex = 'Установка цвета Else'иначе cel.Locked = True'Защищаем cel.Font.ColorIndex = xlColorIndexAutomatic'Устанавливаем цвет по умолчанию. Обычно черный End If Next myDoc.Protect'Снова защищаем лист Exit Sub errorHandler:'Вывод ошибки, если таковая возникла MsgBox Error End Sub