Примените функцию / код к каждой строке на листе, используя VBA - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть макрос, который применяет условное форматирование к строке, которая выделяет указанные c значения. Мне было интересно, есть ли способ применить его к нескольким строкам (я хочу, чтобы он запускался из строк 18-79). Как вы можете см. мой код ниже, функция должна быть настроена для каждой строки отдельно (я сделал 3). Мне было интересно, есть ли более простой способ применить это, чем повторять и корректировать для всех нужных мне строк.

Sub Highlight()
'
' Highlight good values

Application.ScreenUpdating = False

    Dim ws As Worksheet


    For Each ws In ActiveWorkbook.Worksheets

    ws.Activate


    Rows("18:18").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=$C$18", Formula2:="=$D$18"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16752384
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13561798
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

    Rows("19:19").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=$C$19", Formula2:="=$D$19"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16752384
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13561798
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

    Rows("20:20").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=$C$20", Formula2:="=$D$20"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16752384
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13561798
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False

    Next ws

Application.ScreenUpdating = True

End Sub

1 Ответ

1 голос
/ 05 февраля 2020

изменить диапазон, чтобы включить все:

With ActiveSheet.Rows("18:79")
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=$C18", Formula2:="=$D18"
    .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With .FormatConditions(1).Font
        .Color = -16752384
        .TintAndShade = 0
    End With
    With .FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13561798
        .TintAndShade = 0
    End With
    .FormatConditions(1).StopIfTrue = False
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...