Выделение ячеек на основе нескольких условий — VBA

#excel #vba #highlight

#превосходить #vba #выделить

Вопрос:

У меня есть хорошее решение для выделения ячеек на основе точного условия. Я пытаюсь выделить, основываясь на нескольких условиях.

Это сценарий, который я пытаюсь придумать: если столбец Dodge содержит «Дуранго», а цвет столбца содержит «Синий», выделите только слово «Дуранго» в столбце Dodge.

Немного обновлено: Ниже выделено «Дуранго», если есть совпадение, хотя я также определил «Синий» :

 Sub highlight()  Dim highlight As Range Dim highlight2 As Range Set ws = ActiveSheet Set w = ws.Rows(1).Find("Dodge", LookAt:=xlWhole) Set s = ws.Rows(1).Find("Color", LookAt:=xlWhole)   If Not w Is Nothing Then  For Each highlight In ws.Range(w, ws.Cells(Rows.Count, w.Column).End(xlUp)).Cells If Not s Is Nothing Then  For Each highlight2 In ws.Range(s, ws.Cells(Rows.Count, s.Column).End(xlUp)).Cells  If highlight2 = "Blue" And highlight = "Durango" Then  highlight.Interior.Color = 65535  Else  End If Next End If  

Далее Конец, Если

Конец Суб

введите описание изображения здесь

Комментарии:

1. If Highlight.offset(0, 2).value = "Blue" then

2. Рассматривали ли вы возможность использования условного форматирования?

3. Смещение действительно работает, но иногда столбец «цвет» оказывается в другой области

4. Поскольку столбец «цвет» может быть в любом столбце, вы должны сначала сделать .Find на заголовке строки, чтобы определить, какой столбец является цвет столбцов, в оригинальном коде петли, добавить дополнительное условие, как Warcupine сказал Highlight.offset(0, #).value = "Blue" , где # это цвет столбца, который вы нашли у Find (вы должны -1 в столбце число для компенсации) @futureisnow

5. Понял! Спасибо вам обоим за вашу помощь!