#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 в столбце число для компенсации) @futureisnow5. Понял! Спасибо вам обоим за вашу помощь!