1

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

8

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

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

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

2

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

=$A1<>$A2
0

Вот некоторые 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .