Microsoft Excel позволяет применять к ячейкам условное форматирование. Если значение в ячейке соответствует определенным правилам, которые вы установили, функция условного форматирования изменит цвет текста в ячейке или цвет заливки, или и то, и другое. Это основная функция, которая работает прямо из коробки, однако, если вы хотите заблокировать ячейки на основе цвета, вам понадобится небольшой сценарий VBA для этого.
Вы можете использовать условное форматирование, чтобы изменить цвет ячейки, или вы можете вручную изменить цвет на все, что захотите. Сценарий VBS не зависит от условного форматирования для блокировки ячеек. Просто нужно раскрасить клетку.
Блокировать ячейки на основе цвета
Прежде чем вы сможете создать сценарий VBA, вам необходимо знать цвет ячейки, на которую вы ссылаетесь. VBA не видит цвета такими, какие они есть; он ссылается на них через их цветовые коды.
Первое, что вам нужно сделать, это придать своей ячейке цвет. Мы выбрали основной желтый цвет, на который достаточно легко ссылаться. Если вы выберете другой цвет, использовать этот сайт чтобы узнать, какой цветовой код вам нужен. Цветовой код, который мы используем для желтого, — # FFFF00.
В Excel включите вкладку Разработчик, а затем переключитесь на нее. Нажмите кнопку Visual Basic и вставьте следующее в «Этот лист». Этот сценарий был написан пользователем Superuser Дэйвом.
Sub WalkThePlank() dim colorIndex as Integer colorIndex = FFFF00 Dim rng As Range For Each rng In ActiveSheet.UsedRange.Cells Dim color As Long color = rng.Interior.ColorIndex If (color = colorIndex) Then rng.Locked = True else rng.Locked = false End If Next rng End Sub
Запустите сценарий, и он заблокирует все ячейки того цвета, который вы установили. Цветовой код, который вы нашли для своего цвета, будет установлен в этой строке скрипта;
colorIndex = FFFF00
FFFF00 представляет желтый цвет, и это то, что вам нужно заменить любым цветовым кодом, применимым к цвету, который вы используете. Следует отметить, что лучше всего использовать базовый цвет. После того, как вы добавите это, вам нужно будет сохранить файл Excel как файл с поддержкой макросов, иначе сценарий VBA не сохранится.
Запертые ячейки можно легко разблокировать. Замок не защищен паролем и не позволяет другим людям изменять значение ячейки, если они хотят. Это обычная блокировка, предотвращающая случайное изменение файла.