Коллеги, добрый день! Подскажите, пожалуйста, кто-то сталивался с задачей работы макроса и изменению цвета ячеек при определенном условии?
Мой пример: В тестовом файле при открытии файла необходимо закрашивать все ячейки белым цветом в столбцах А,В,Е,F по следующему условию:
1) В столбцах А,В: Если значение ячейки столбца А равно значению ячейки столбца B (Например, А3 = В3) 2) В столбцах E,F: Если значение ячейки столбца E равно значению ячейки столбца F (Например, E3 = F3)
2 макрос - закрасить все ячейки всех столбцов в черный цвет (начиная с определенной строки)
Как выполнить задание с помощью условного форматирования я знаю, здесь принципиально использовать макрос, так как закрашивание в белый цвет и возвращение к предыдущему формату файла я хочу привязать к элементам формы.
Во вложении тестовый файл. Заранее благодарю за помощь!
Коллеги, добрый день! Подскажите, пожалуйста, кто-то сталивался с задачей работы макроса и изменению цвета ячеек при определенном условии?
Мой пример: В тестовом файле при открытии файла необходимо закрашивать все ячейки белым цветом в столбцах А,В,Е,F по следующему условию:
1) В столбцах А,В: Если значение ячейки столбца А равно значению ячейки столбца B (Например, А3 = В3) 2) В столбцах E,F: Если значение ячейки столбца E равно значению ячейки столбца F (Например, E3 = F3)
2 макрос - закрасить все ячейки всех столбцов в черный цвет (начиная с определенной строки)
Как выполнить задание с помощью условного форматирования я знаю, здесь принципиально использовать макрос, так как закрашивание в белый цвет и возвращение к предыдущему формату файла я хочу привязать к элементам формы.
Во вложении тестовый файл. Заранее благодарю за помощь!andruha912009
Sub мяу() Dim cel As Range For Each cel In Intersect(ActiveSheet.UsedRange, Columns("A")) If cel = cel.Next Then cel.Resize(, 2).Interior.Color = vbRed Next For Each cel In Intersect(ActiveSheet.UsedRange, Columns("E")) If cel = cel.Next Then cel.Resize(, 2).Interior.Color = vbRed Next End Sub
[/vba]
Исправляю [vba]
Код
Sub мяу() Dim cel As Range For Each cel In Intersect(ActiveSheet.UsedRange, Columns("A")) If cel = cel.Next Then cel.Resize(, 2).Interior.Color = vbRed Next For Each cel In Intersect(ActiveSheet.UsedRange, Columns("E")) If cel = cel.Next Then cel.Resize(, 2).Interior.Color = vbRed Next End Sub
Подскажите, еще, пожалуйста, а можно изменить цвет шрифта, а не заливку ячейки? Можете еще подсказать, как после этого вернуть черный шрифт для всех ячеек листа, начиная со 2 строки?
Спасибо
RAN,
Спасибо большое! Работает!
Подскажите, еще, пожалуйста, а можно изменить цвет шрифта, а не заливку ячейки? Можете еще подсказать, как после этого вернуть черный шрифт для всех ячеек листа, начиная со 2 строки?