【问题标题】:VBA conditional search and markingVBA条件搜索和标记
【发布时间】:2019-04-15 06:32:16
【问题描述】:

目的是在 A 列中搜索单词“XXX”。当在该列中找到该单词时,下一个单元格应与单词“C”匹配。如果没有,请继续在下一行中搜索“XXX”等。我的代码中的问题是它标记所有“C”。换句话说,没有条件搜索,其中 XXX=C。

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

【问题讨论】:

    标签: search conditional cell background-color


    【解决方案1】:

    已编辑:见下文

    有点不确定你在问什么,但我认为解决方案如下。 我使用了更简单的代码,但应该足够了。

    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
    

    【讨论】:

    • 谢谢。它几乎符合目的。目的是仅当 XXX 和“C”彼此相邻时,将所有“XXX”标记为一种颜色,并将“XXX”下一个单元格中的所有“C”标记为绿色。
    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多