EXCEL: Как условно отформатировать толстую нижнюю границу для всей строки на основе значения одного столбца?
Возможный дубликат:
Условное форматирование Excel для выделения всей строки, если одна дата не совпадает с другой датой в этой строке
У меня есть следующие строки...
1 AA 12 13 4 7
1 A 12 13 5 2
1 A 12 14 5 2
1 AAA 1 15 3 1
2 AAA 1 15 3 1
2 AA 3 44 5 19
2 A R 4 33 87
3 AA 3 3R 55 77
И я хочу узнать, как сделать условное форматирование, чтобы в случае изменения значения самого левого столбца я мог добавить толстую нижнюю границу ко всей строке. Так, например, это будет выглядеть так...
1 AA 12 13 4 7
1 A 12 13 5 2
1 A 12 14 5 2
1 AAA 1 15 3 1
-------------------------
2 AAA 1 15 3 1
2 AA 3 44 5 19
2 A R 4 33 87
-------------------------
3 AA 3 3R 55 77
и так далее...
Я смог заставить его работать, но только для первого столбца, а не отформатировать всю строку. Спасибо!
3 ответа
Вам нужно привязать ссылки на столбцы в формуле для условного формата.
Предполагая, что ваш диапазон данных начинается в A1
, вы бы установили условный формат на диапазон A1:F1
с формулой критерия $A1<>$A2
и выбранный вами формат.
Затем вы должны скопировать форматирование строки вниз по диапазону (используя Paste Special Format).
Предположим, что вашей верхней левой ячейкой является A1, выберите все данные, начиная с A1, а затем используйте эту формулу:
=$A1<>$A2
Вот некоторые VBA, которые будут выполнять то, что вы ищете.
Sub LineSep()
' Start Location 1 lower than first range with value
Range("A2").Select
Do
If ActiveCell.Offset(-1, 0).Value = ActiveCell.Value Then
ActiveCell.Offset(1, 0).Select
Else:
Range(Selection, Selection.End(xlToRight)).Select
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell.Value = ""
End Sub