Выделите диапазон ячеек на основе условного значения

#excel #vba

#excel #vba

Вопрос:

Я пытаюсь найти код VBA, который выделил бы соответствующую строку в диапазоне «A7: AD100», если ячейка в столбце «AB» имеет значение «Выборочный».

 Sub highlight()    
    Dim cell As Range
    Range(Range("AB7"), Range("AB7").End(xlDown)).Select
    For Each cell In Selection
        If cell = "Elective" Then Cells.Range($A7, $AD7).Interior.ColorIndex = 10
    Next cell
End Sub
  

Выделены только строки 1, 11, 21, 23, поскольку они имеют допустимый тип = «Выборочный». Строки, выделенные только в пределах диапазона «A: AD» (я не хочу, чтобы выделялась вся строка).

Ответ №1:

Я нашел этот код, который работает для меня

Подсвеченные ячейки ()

 Dim rngMyCell  As Range
Dim lngLastRow As Long

Application.ScreenUpdating = False

lngLastRow = Cells(Rows.Count, "AB").End(xlUp).Row

For Each rngMyCell In Range("AB7:AB" amp; lngLastRow)
    If StrConv(rngMyCell, vbProperCase) = "Elective" Then
        Range("A" amp; rngMyCell.Row amp; ":AD" amp; rngMyCell.Row).Interior.Color = RGB(240, 240, 240)
    End If
Next rngMyCell

Application.ScreenUpdating = True
  

End Sub