установить условное форматирование - нижний край - PullRequest
0 голосов
/ 04 октября 2018

Я бы хотел установить условное форматирование для диапазона, когда $ B2 <> $ B3.Вот мой код:

Sub AddBorders()
Dim rng As Range
If ActiveSheet.Name <> Sheet1.Name Then
    Exit Sub
End If

Set rng = Range(Range("A2").End(xlToRight), Range("A2").End(xlDown))
'rng.Activate
rng.FormatConditions.Delete


With rng.FormatConditions.Add(xlExpression, xlNotEqual, "=$B2<>$B3")
    With rng.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    End With
End With
End Sub

Похоже, что граница была добавлена ​​в самом низу диапазона, и мне хотелось бы, чтобы она была в пределах диапазона, когда значения в столбце B отличаются.Когда я нажимаю «Условное форматирование», я вижу, что форматирование было установлено, и добавление его вручную в «Формат» -> «Граница» -> установка нижней границы делает именно то, что я хочу.Но я не знаю, как правильно его кодировать.

1 Ответ

0 голосов
/ 04 октября 2018

Уберите rng, чтобы установить границы условного форматирования, и поменяйте местами xlEdgeBottom на xlBottom.

Sub AddBorders()
    Dim rng As Range

    With Worksheets(Sheet1.Name)
        Set rng = .Range(.Range("A2").End(xlToRight), .Range("A2").End(xlDown))
    End With

    With rng
        .FormatConditions.Delete
        With .FormatConditions.Add(Type:=xlExpression, Formula1:="=$B2<>$B3")
            With .Borders(xlBottom)
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
        End With
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...