EXCEL: Как условно отформатировать толстую нижнюю границу для всей строки на основе значения одного столбца?

15736
fwaokda

Возможный дубликат:
условное форматирование 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 

и так далее...

Я смог заставить его работать, но только для первого столбца, а не форматировать всю строку. Спасибо!

1

3 ответа на вопрос

8
chuff

Вам нужно привязать ссылки на столбцы в формуле для условного формата.

Предполагая, что ваш диапазон данных начинается A1, вы должны установить условный формат для диапазона A1:F1с формулой критерия $A1<>$A2и выбранным форматом.

Затем вы должны скопировать форматирование строки вниз по диапазону (используя специальный формат вставки ).

Спасибо! Для ответа еще нового, чтобы преуспеть! $ Были то, что мне не хватало. fwaokda 11 лет назад 0
Это был отличный ответ, но я забыл, что формула в Excel всегда начинается с `=` - так что в конце концов я понял, что могу: выбрать весь блок и добавить условное форматирование, мне просто нужно убедиться, что поле содержит: `= $ A1 <> $ A2` :) Ian Grainger 8 лет назад 0
2
ApplePie

Предположим, что вашей верхней левой ячейкой является A1, выберите все данные, начиная с A1, а затем используйте эту формулу:

=$A1<>$A2 
0
DesertSpider

Вот некоторые 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 
Другой код VBA для выполнения этой функции см. На странице https://www.mrexcel.com/forum/excel-questions/749698-automatics-adding-border-line-after-change-value-column.html#post3683193. sondra.kinsey 6 лет назад 0

Похожие вопросы