VBA условный поиск и маркировка - PullRequest
0 голосов
/ 12 ноября 2018

Целью является поиск в столбце A слова "XXX". Когда слово найдено в этом столбце, следующая ячейка должна соответствовать слову «C». Если это не так, продолжайте поиск «XXX» в следующей строке и т. Д. Проблема в моем коде заключается в том, что оно отмечает все буквы "С" Другими словами, нет условного поиска, где XXX = C.

enter image description here

For Each cell In ws.Range("A1:A20").SpecialCells(xlCellTypeConstants)
    Select Case cell.Value2
        Case "XXX"
            col = RGB(202, 225, 255)
        Case Else
            col = 0
    End Select


    If col > 0 Then
        wb.Activate
        cell.Interior.Color = col
        For Each cell2 In cell.Offset(, 2).Resize(1).SpecialCells  (xlCellTypeConstants)
        res = Switch(cell2.Value = "C", vbGreen)
        If Not IsNull(res) Then Intersect(Range("B:B, J:J, L:L, N:N, Q:Q"), Rows(cell2.Row)).Interior.Color = CLng(res) '
        Next
    End If
Next

1 Ответ

0 голосов
/ 12 ноября 2018

Отредактировано: см. Ниже

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

For xJ = 1 to 200
    If Range("A" & xJ).Value = "XXX" then
        Range("A" & xJ).Interior.Color = RGB(202, 225, 255)
        If Range("B" & xJ).Value = "C" Then
            Range("B" & xJ).Interior.Color = RGB(57, 225, 20)
        End If
    End if
Next xJ
...